Falls Sie laufen die Shell interaktiv und das Zielverzeichnis ist statisch, können Sie einfach einen Alias in Ihre ~/.bashrc
Datei setzen:
alias cdfoo='cd theFooDir'
Wenn mit nicht-interaktive Shell-Skripten zu tun, können Sie eine erstellen Protokoll zwischen dem elterlichen Bash-Skript und dem Kind-Bash-Skript. Eine Methode, dies zu implementieren, besteht darin, das untergeordnete Skript den Pfad in eine Datei speichern zu lassen (z. B. ~/.new-work-dir
). Nachdem der untergeordnete Prozess beendet wurde, muss der elterliche Prozess diese Datei lesen (z. B. cd `cat ~/.new-work-dir`
).
Wenn Sie planen, die im vorherigen Absatz erwähnte Regel sehr oft zu verwenden, würde ich vorschlagen, dass Sie den Bash-Quellcode herunterladen und so anpassen, dass er das Arbeitsverzeichnis nach jeder Ausführung eines Befehls automatisch in den Inhalt von ~/.new-work-dir
ändert . Im Patch können Sie sogar einen völlig neuen Bash-Befehl implementieren, der Ihren Anforderungen entspricht und das Protokoll implementiert, das Sie implementieren möchten (dieser neue Befehl wird wahrscheinlich von den Bash-Betreuern nicht akzeptiert). Patching funktioniert jedoch für den persönlichen Gebrauch und für den Einsatz in einer kleineren Community.
Siehe auch http://stackoverflow.com/questions/255414/why-doesnt-cd-work-in-a-bash-shell-script – tripleee