Eine Minute
Shell-Skript: Skript-Verzeichnis herausfinden
TLDR; Die Lösung:
Du kombinierst die Spezial-Variable $0 mit den Tools dirname und pwd.
Beispiel
#!/bin/sh
SCRIPTPATH=$(cd `dirname $0` && pwd)
echo $SCRIPTPATH
Ausführlicher - so funktionierts:
In der Spezial-Variable $0 ist der Dateiname des Skripts gespeichert, das gerade ausgefürt wird.
Für das Script /Users/jk/bin/test.sh
#!/bin/sh
echo $0
lautet die Ausgabe also
/Users/jk/bin/test.sh
dirname gibt den Verzeichnisteil aus dem kompletten Pfad zurück (siehe man dirname) und mit cd wechseln wir in dieses Verzeichnis.
Was an dieser Stelle identisch ist, mit dem Verzeichnis, in dem das Skript liegt, das gerade ausgeführt wird.
Ist die Befehlsfolge
cd `dirname $0`
erfolgreich führen wir mit && noch ein pwd (aktuelles Verzeichnis ausgeben) aus und speichern die Ausgabe in der Variable SCRIPTPATH.
Und damit haben wir das gewünschte Ergebnis. 😏
SysAdmin Linux Programmieren Shell KurzDoku OpenSource centos
125 Wörter
13.04.2019 02:00 (Letzte Aktualisierung: 01.04.2023 15:38)
c1466f37 @ 01.04.2023