Es ist ja bekannt, dass der Name unter "$0"
gespeichert ist. Aber wenn ./myscript.sh
aufgerufen wird, liefert dirname $0
das wenig aussagekräftige ./
zurück. Was tun? Man setzt seine eigene Variable, z. B. ME="$(readlink -f $(type -p "$0" || echo "$0"))"
, danach kann man mit dirname $ME
auf den „richtigen“ Pfad zugreifen. Die Ergebnisse von basename $ME
und basename $0
sollten identisch sein