Я хотел бы знать, работает ли данный скрипт под Ash, Dash, Bash, ZSH или чем-то еще.
Сценарий может иметь или не иметь строку shebang, и он может выполняться либо напрямую (my-script.sh
), либо как аргумент интерпретатору оболочки (sh my-script.sh
).
Какой самый простой способ узнать это?
Изменить: после прочтения приведенных ниже ответов и повторяющегося вопроса я обнаружил, что это самый простой и надежный способ найти имя оболочки, выполняющей скрипт под Linux:
show_shell() { basename "$(readlink -f /proc/$$/exe)" ;}