So finden Sie das Verzeichnis, in dem sich ein Bash -Skript aus dem Skript befindet
Während des Bash -Skripts benötigen Sie möglicherweise den Standort des Skripts, um verschiedene Aufgaben zu automatisieren. Es gibt zwei Arten von Pfaden unter Linux:
Eine der häufigsten Möglichkeiten, um den Ort eines Bash -Skripts zu bestimmen, besteht darin, die zu verwenden PWD Befehl. Der PWD Befehl (Drucken Arbeitsverzeichnis) wird das aktuelle Verzeichnis zeigen.
In vielen Situationen einfach verwenden PWD Der Befehl funktioniert nicht, da er nur den Weg des aktuell funktionierenden Verzeichnisses gibt.
Zum Beispiel, wenn sich das Skript in der befindet Downloads Verzeichnis und aus der Ausführung von der Desktop Dann enthält der Ausgang die /home/usr/desktop nicht der Speicherort der Bash -Skriptdatei, nämlich /home/usr/downloads.
In diesem Tutorial geht es darum, den Pfad des Verzeichnisses zu erhalten, in dem sich die Bash -Skriptdatei aus dem Skript befindet.
So erhalten Sie den Verzeichnispfad, in dem sich die Bash -Skriptdatei befindet
Eine andere Möglichkeit, das Verzeichnis eines Bash -Skripts zu bestimmen, besteht darin, die zu verwenden Dirname Befehl. Der Dirname Der Befehl nimmt einen Dateipfad als Argument ein und gibt den Verzeichnisanteil des Pfades zurück.
Benutzen Dirname Befehl zur Bestimmung des Verzeichnisses eines Skripts. Sie würden den Befehl mit dem Pfad bis zu den letzten Nicht-Slash-Komponenten zum Skript als Argument aufrufen.
Für weitere Details zu Dirname Führen Sie die folgenden Befehle im Terminal aus:
$ MAN DIRNAME
Nur Dirname wird nicht funktionieren, wir brauchen einen anderen Befehl, der ist Readlink. Der Readlink Befehlsdruck hat den symbolischen Link gelöst. Erhalten Sie weitere Informationen zu diesem Befehl, indem Sie ausführen:
$ MAN LEADLINK
Jetzt, Erstellen Sie ein Skript:
$ sudo nano myscript.Sch
Und Typ:
#!/Bin/Bash
echo "Der Bash -Skriptpfad ist $ (DirName -" $ (readlink -f - "$ 0") ";)";
Um die Verwendung des Skripts auszuführen:
$ bash myscript.Sch
Ändern wir das Verzeichnis und sehen, was die Ausgabe ist:
Notiz: In einem Fall funktioniert das obige Skript nicht, wenn die Datei bezogen wird, anstatt auszuführen, wie sie in der folgenden Ausgabe zu sehen ist:
Die Ausgabe ist /home/sam/desktop Während die Skriptdatei in der vorhanden ist /home/sam Verzeichnis.
Abschluss
Zusammenfassend gibt es mehrere Möglichkeiten, das Verzeichnis eines Bash -Skripts aus dem Skript selbst zu bestimmen. Der Dirname zusammen mit Readlink Das Dienstprogramm kann verwendet werden, um das Verzeichnis eines Skripts zu bestimmen. Einfach einfach benutzen PWD Der Befehl funktioniert nicht, da es nur das derzeit funktionierende Verzeichnis gibt.