Wenn Sie einen Befehl in der Shell aufrufen, erbt der neue Prozess das Arbeitsverzeichnis des übergeordneten Elements. Hier sind zwei Möglichkeiten, um das Arbeitsverzeichnis zu erhalten:
Mit "Verzeichnis, aus dem es aufgerufen wurde" meinen Sie anscheinend das Arbeitsverzeichnis. Sie können dies innerhalb des Skripts mit z. B. ändern cd, aber bevor Sie dies tun, pwdwird es ausgedruckt. Es wird wahrscheinlich auch in der Variablen sein$PWD
Wenn Sie das ursprüngliche Arbeitsverzeichnis nach dem Ändern benötigen, speichern Sie es einfach oben in Ihrem Skript (bevor Sie es ändern).
#!/bin/bash
initial_wd=`pwd`# ... do a lot of stuff ...# ⋮
cd "$initial_wd"
Wenn Sie dies verwenden, um zu dem Verzeichnis zurückzukehren, in dem Sie begonnen haben, siehe auch pushdund popd.
@ Jordanm In der Tat gibt es, aber das wird nicht unbedingt das anfängliche Arbeitsverzeichnis sein (z. B. wenn Sie cdzweimal verwendet haben)
derobert
$ OLDPWD ist was ich brauche; Ich führe Bash-Skripte über die CMD-Eingabeaufforderung unter Win7 aus. Dies war die Umgebungsvariable, die das Verzeichnis enthielt, in dem ich das Skript ausführte. Prost
Antworten:
Wenn Sie einen Befehl in der Shell aufrufen, erbt der neue Prozess das Arbeitsverzeichnis des übergeordneten Elements. Hier sind zwei Möglichkeiten, um das Arbeitsverzeichnis zu erhalten:
quelle
Mit "Verzeichnis, aus dem es aufgerufen wurde" meinen Sie anscheinend das Arbeitsverzeichnis. Sie können dies innerhalb des Skripts mit z. B. ändern
cd
, aber bevor Sie dies tun,pwd
wird es ausgedruckt. Es wird wahrscheinlich auch in der Variablen sein$PWD
Wenn Sie das ursprüngliche Arbeitsverzeichnis nach dem Ändern benötigen, speichern Sie es einfach oben in Ihrem Skript (bevor Sie es ändern).
Wenn Sie dies verwenden, um zu dem Verzeichnis zurückzukehren, in dem Sie begonnen haben, siehe auch
pushd
undpopd
.quelle
cd
zweimal verwendet haben)