其他 shebangs

内核知道有两种程序。二进制程序由它的 ELF( E xtenable L oadable F ormat)头标识,它通常由编译器产生。第二个是任何类型的脚本。

如果文件在序列 #的第一行开始 然后下一个字符串必须是解释器的路径名。如果内核读取此行,它将调用由此路径名命名的解释器,并将此行中的所有以下单词作为解释器的参数。如果没有名为 somethingwrong 的文件:

#!/bin/bash something wrong
echo "This line never gets printed"

bash 试图执行其不存在的错误参数。也添加了脚本文件的名称。要清楚地看到这个,请使用 echo shebang:

#"/bin/echo something wrong 
# and now call this script named "thisscript" like so:
# thisscript one two
# the output will be:
something wrong ./thisscript one two

awk 这样的程序使用这种技术来运行驻留在磁盘文件中的更长的脚本。