Способ 1, самый простой с помошью readlink:
#!/bin/sh #выведет полный путь в канонической форме readlink -fn "$0"
Способ 1 требует наличия программы readlink
Способ 2, без приведения к канонической форме пути, но средствами только самого shell интерпретатора:
#!/bin/bash #Способ получения полного имени скрипта, #без приведения к канонической форме пути, #средствами только самого shell интерпретатора #REALPATH DETECTED (${string:position:length} - extract subtring from string) if [ ${0:0:2} == './' ]; then FULL_NAME="$PWD/${0:2}" else FULL_NAME="$0" fi echo "Full program name: '$FULL_NAME'"
Способ 2: работа проверена только в bash реализации shell. В sh, csh, ksh не уверен что будет работать.
Если Вам известны ещё способы, то желательно написать его в комент.