cd (change directory) in bash-script

  • Hallo,


    gibt es eine Möglichkeit ein bash-Script zu schreiben, das das Verzeichnis wechselt. Normalerweise landet man ja, wenn ein bash-script beendet wird, wieder im ursprüglichen Verzeichnis. Also z.B. das Script

    Bash
    #!/bin/bash
    cd /dahin/dorthin/woandershin

    macht überhaupt nichts.


    Viele Grüße


    Euer frausch

  • Zitat

    Original von frausch
    Also z.B. das Script

    Bash
    #!/bin/bash
    cd /dahin/dorthin/woandershin

    macht überhaupt nichts.


    Sicher macht das was, aber nur zur Laufzeit des Scriptes.
    Wenn du im Script noch z.b. ein ls absetzt wirkt das in /dahin/dorthin/woandershin

  • Jeder Prozess hat sein eigenes Arbeitsverzeichnis - und wenn du ein Shell-script startest wird eine neue Shell gestartet, die es abarbeitet. In /dieser/ Shell änderst du das Verzeichnis.


    Wenn du willst, dass keine neue Shell gestartet wird sondern deine aktuelle Shell das Script ausführt, brauchst du den "source" Befehl:


    source ./script.sh


    oder kurz


    . ./script.sh

    Asrock A75 Pro4-M
    Debian wheezy (testing, stock) (aktuell 2012-08-24: Linux 3.2, VDR 1.7.28)
    vdr-sxfe (xineliboutput)
    Pioneer VSX-520-K

  • Zitat

    Originally posted by herbsl
    das geht nur per funktion.


    function go2root() { cd /; }


    Und was soll das bewirken ?
    Das Ergbnis bleibt auf die aktuelle Shell begrenzt - nur hier ändert sich $PWD
    Der übliche Aufruf eines Scriptes startet allerdings eine neue Instanz der Shell .
    zirias' Tip vermeidet das .


    HJS

  • ja

    Einmal editiert, zuletzt von magicamun ()

  • Zitat

    Originally posted by frausch
    Ich nehme an, dass ich die Datei, in der ich die Funktion definiere auch mit source laden muss oder?


    Aber wozu dann noch ne Funktion definieren :rolleyes: ? Dann tuts auch der einfache cd .


    HJS

  • Zitat

    Original von frausch

    Bash
    #!/bin/bash
    cd /dahin/dorthin/woandershin


    Für sowas definiert man sich alias in der ~/.bashrc


    z.B.:

    Code
    alias cdbuild='cd /var/src/trunk/build'


    Hier ist meine .bashrc
    http://decembersoul.dyndns.org/wiki/index.php/Linux_bashrc

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!