Шебанг (#!) Стандартизирован?
Это Шебанг #!
например,
#!/bin/sh
перед исполняемыми файлами сценариев, официально стандартизированными в стандартной базе Linux или в любом из стандартов Open Group или где-либо еще? Если да, пожалуйста, предоставьте ссылки и детали.
ПРИМЕЧАНИЕ: меня больше всего интересует его значение для сценариев оболочки, а также для любого исполняемого файла. Другими словами, требует ли какой-либо из стандартов интерпретация #!
в начале исполняемых файлов? Тем не менее, любые другие ссылки на него в стандартах также приветствуются.
2 ответа
POSIX оставляет эффект #!
неопределенные. С 2.1 Shell Введение
Оболочка считывает свой ввод из файла (см. Sh), из опции -c или из функций system() и popen(), определенных в томе "Системные интерфейсы" POSIX.1-2008. Если первая строка файла команд оболочки начинается с символов "#!", Результаты не указываются.
Из источника:
Скрипты Bash часто начинаются с #! /bin/bash (при условии, что Bash был установлен в /bin), поскольку это гарантирует, что Bash будет использоваться для интерпретации сценария, даже если он выполняется под другой оболочкой.
Вы также можете проверить это #! магия, подробности о механизме shebang/hash-bang в различных вариантах Unix