Как определить имя файла сценария Bash внутри самого сценария?
Например, если мой скрипт находится в файле runme.sh, то как мне сделать так, чтобы он отображал сообщение «Вы запускаете runme.sh» без жесткого кодирования?
runme.sh
Вот то, что я придумал, вдохновленный ответом Димитра Радулова (кстати, я проголосовал) .
script="$BASH_SOURCE" [ -z "$BASH_SOURCE" ] && script="$0" echo "Called $script with $# argument(s)"
независимо от того, как вы называете свой скрипт
. path/to/script.sh
или
./path/to/script.sh
DIRECTORY=$(cd `dirname $0` && pwd)
Я получил вышеупомянутое из другого вопроса переполнения стека, Может ли сценарий Bash сказать, в каком каталоге он хранится? , но я думаю, что это полезно и для этой темы.