Редактировать: используя readlink
Вы можете использовать readlink, и он сводится к:
SCRIPT_DIR=$(dirname "$(readlink -f $0)")
Редактировать: без ссылки на чтение
if test -h $0; then
symdir=$(dirname "$(ls -l $0 | sed -n 's/.*-> //p')")
if [[ -z $symdir ]]; then
symdir=.
fi
fullreldir=$(dirname $0)/$symdir
fi
script_dir=$(cd $fullreldir; /bin/pwd)
Я неправильно понял местоположение скрипта и предположил, что каталог вызываемого скрипта находится в структуре каталогов целевого приложения, где будет работать следующее:
SCRIPT_DIR=$(cd $(dirname $0); /bin/pwd)