其他 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 這樣的程式使用這種技術來執行駐留在磁碟檔案中的更長的指令碼。