其他 shebangs
内核知道有两种程序。二进制程序由它的 ELF( E xtenable L oadable F ormat)头标识,它通常由编译器产生。第二个是任何类型的脚本。
如果文件在序列 #的第一行开始 ! 然后下一个字符串必须是解释器的路径名。如果内核读取此行,它将调用由此路径名命名的解释器,并将此行中的所有以下单词作为解释器的参数。如果没有名为 something
或 wrong
的文件:
#!/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 这样的程序使用这种技术来运行驻留在磁盘文件中的更长的脚本。