Ruft das Verzeichnis auf, in dem sich eine Bash-Skriptdatei befindet

8

Wie bekomme ich das Verzeichnis, in dem sich eine Bash-Skript-Datei befindet, wenn diese Skript-Datei von einem anderen eingeschlossen wird (was es von diese Frage )?

/script1.sh

%Vor%

/dir2/script2.sh

%Vor%

Dies ist das Skript, das ich versuche "zu reparieren"

/etc/init.d/silvercar-gameserver (einzigartig für jede Instanz)

%Vor%

/opt/silvercar-gameserver/gameserver.sh.inc (nicht für jede Installation geändert werden. ist in Svn)

%Vor%     
Bart van Heukelom 09.06.2011, 11:09
quelle

2 Antworten

5

Um die Datei zu erhalten, kennt das übergeordnete Skript offensichtlich den Pfad, unter dem das untergeordnete Skript ist. Setzen Sie es als Variable und prüfen Sie dann im untergeordneten Skript nach dieser Variablen. Wenn es verfügbar ist, wissen Sie, dass es stammt und Sie können diesen Pfad verwenden, andernfalls verwenden Sie den normalen Trick in der Frage, die Sie verknüpft haben.

%Vor%     
Caleb 09.06.2011, 11:12
quelle
6

Wenn Sie bash 3.0 oder neuer haben, können Sie BASH_SOURCE verwenden, um genau das zu erhalten, was Sie brauchen, ohne auf das aufrufende Programm angewiesen zu sein, um irgendwelche Umgebungsvariablen für Sie festzulegen. Siehe unten für ein Beispiel:

%Vor%

Die Ausgabe ist:

%Vor%     
Steve Prentice 09.06.2011 14:19
quelle

Tags und Links