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