Shebang(#!)标准化了吗?

时间:2016-05-18 09:10:31

标签: posix standards language-lawyer shebang lsb

Shebang #!,例如

#!/bin/sh

在Linux Standard Base或任何Open Group标准或其他地方正式标准化的脚本可执行文件前面?如果是,请提供参考和详细信息。

注意:我对shell脚本以及任何可执行文件的含义最感兴趣。换句话说,任何标准是否需要在可执行文件的开头对#!进行类似shebang的解释?但是,标准中对它的任何其他引用也是受欢迎的。

2 个答案:

答案 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