BASH: Абсолютный путь к запущенному скрипту
Занялся скриптом бекапа на сервере, решил его «универсализировать». И обнаружил странное: в bash невозможно стандартным путем получить абсолютный путь запущенного скрипта.
Вобще есть переменная $0, которая возвращает команду запущенного скрипта. Но это может быть:
/home/user/bin/test.sh
~/bin/test.sh
и даже ./test.sh
Недолго думая, пришло решение:
DIR=`pwd` cd `dirname $0` ABSPATH=`pwd` cd $DIR unset DIR
Через одно место, конечно, но работает.