В Linux мы обычно добавляем shebang в скрипт для вызова соответствующего интерпретатора. Я попробовал следующий пример.Использование shebang в сценариях оболочки
Я написал сценарий оболочки без shebang и с исполняемым разрешением. Я смог выполнить его, используя ./. Но если я пишу подобную программу python, без shebang, я не могу ее выполнить.
Почему это так? Насколько я понимаю, Шебанг должен найти переводчика. Итак, как работают скрипты оболочки, но не скрипт python?
Я не исследовал это, но я бы предположил (и было бы логично), что он может по умолчанию интерпретировать его как сценарий оболочки (никакого другого специального интерпретатора) – lurker
Это из спецификации. Я уверен, что интерпретатор просто даст ему шанс и посмотрит, будет ли он работать сам с собой (то есть '/ bin/bash' будет пытаться использовать'/bin/bash', '/ bin/sh' будет пытаться '/ bin/sh' и т. д.). – zebediah49
Возможный дубликат [Выполнение сценария Bash с и без shebang в Linux и BSD] (http://stackoverflow.com/questions/7268437/bash-script-execution-with-and-without-shebang-in-linux-and- bsd) – hop