Header für Bash Shellscripte

03.02.2012

Für Shell-Scripte unter Linux gilt das gleiche wie für jedes andere Programm: “Das aktuelle Arbeitsverzeichnis wird durch den Aufrufer bestimmt.” Das ist natürlich dann ein Problem, wenn man bestimmte Konfigurationsdateien oder Programme im aktuellen Arbeitsverzeichnis erwartet. Wenn dem so ist, kann folengder Scriptschnipsel das Arbeitsverzeichnis auf das Installationsverzeichnis des Shellscriptes setzen.

#!/bin/bash
fullScriptName=$(readlink -qe "$0")
fullScriptPath=${fullScriptName%/*}
pushd $fullScriptPath

Dieses Stück Bash-Shellscript setzt den aktuellen Pfad auf das Verzeichnis, in welchem das Shellscript abgelegt ist. Da pushd verwendet wird, wird der Pfad beim verlassen des Scriptes automatisch wieder auf das vorhergehende Verzeichnis zurückgesetzt. So arbeitet das Script immer in seinem Installationsverzeichnis, ohne das das aktuelle Arbeitsverzeichnis der aufrufenden Shell verbogen wird.