Ich habe ein Skript doSmth
in /usr/bin
. Ist es möglich, das Verzeichnis abzurufen und auszudrucken, aus dem das Skript aufgerufen wurde ?
Also wenn ich doSmth
von /home/me
der Ausgabe anrufe wird /home/me
.
Ich habe ein Skript doSmth
in /usr/bin
. Ist es möglich, das Verzeichnis abzurufen und auszudrucken, aus dem das Skript aufgerufen wurde ?
Also wenn ich doSmth
von /home/me
der Ausgabe anrufe wird /home/me
.
Antworten:
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).
#!/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 pushd
und popd
.
cd
zweimal verwendet haben)