Pfad-Verarbeitung
Oft möchte man nur den Datei- oder Verzeichnisnamen ohne den vollen Pfad nutzen. Nachfolgend sind einige Beispiele gezeigt:
> basename /bin/date
date
> dirname /bin/date
/bin
ME=$(basename $0)
DIR=$(cd $(dirname $0); pwd)
SETUP=$(cd $DIR/../etc; pwd)/$ME.conf
echo "$ME: running from location $DIR.."
echo "$ME: loading setup from $SETUP.."
. $SETUP
echo $LOGLVL
Das Skript "path.sh" lädt das Setting abhängig von dessen Verzeichnisablage und Dateinamen immer eine Ebene höher in etc/<scriptname>.conf:
> pwd
> bash tmp/path.sh
path.sh: running from location /home/thomas/tmp..
path.sh: loading setup from /home/thomas/etc/path.sh.conf..
2
> cd tmp; ./path.sh
path.sh: running from location /home/thomas/tmp..
path.sh: loading setup from /home/thomas/etc/path.sh.conf..
2
> mv path.sh newpath; ./newpath
newpath: running from location /home/thomas/tmp..
newpath: loading setup from /home/thomas/etc/newpath.conf..
./newpath: line 10: /home/thomas/etc/newpath.conf: No such file or directory