是Shebang #!
,例如
#!/bin/sh
在Linux Standard Base或任何Open Group标准或其他地方正式标准化的脚本可执行文件前面?如果是,请提供参考和详细信息。
注意:我对shell脚本以及任何可执行文件的含义最感兴趣。换句话说,任何标准是否需要在可执行文件的开头对#!
进行类似shebang的解释?但是,标准中对它的任何其他引用也是受欢迎的。
答案 0 :(得分:7)
POSIX未指定#!
的效果。来自 2.1 Shell简介
shell从文件(参见sh),-c选项或从POSIX.1-2008的系统接口卷中定义的system()和popen()函数读取其输入。如果shell命令文件的第一行以字符“#!”开头,则结果未指定。
答案 1 :(得分:2)
来自source:
Bash脚本通常以#开头! / bin / bash(假设Bash有 安装在/ bin),因为这确保了Bash将被用于 解释脚本,即使它是在另一个shell下执行。
您还可以查看此The #! magic, details about the shebang/hash-bang mechanism on various Unix flavours