在計算領域中,Shebang(也稱為 Hashbang )是一個由井號和嘆號構成的字符序列 #!
,其出現在文本文件的第一行的前兩個字符。 在文件中存在 Shebang 的情況下,類 Unix 操作系統的程序加載器會分析 Shebang 后的內容,將這些內容作為解釋器指令,並調用該指令,並將載有 Shebang 的文件路徑作為該解釋器的參數[1]。
例如,以指令#!/bin/sh
開頭的文件在執行時會實際調用/bin/sh程序(通常是 Bourne shell 或兼容的 shell,例如 bash、dash 等)來執行。這行內容也是 shell 腳本的標准起始行。
由於 #
符號在許多腳本語言中都是注釋標識符,Shebang 的內容會被這些腳本解釋器自動忽略。 在 #
字符不是注釋標識符的語言中,例如 Scheme,解釋器也可能忽略以 #!
開頭的首行內容,以提供與 Shebang 的兼容性[2]。
"Shebang" 或者說 "Hashbang" 的名字有時也被當做 Ajax 應用程序中的 分段標識符,用於瀏覽器的狀態保存;Google 網站站長中心提到,以嘆號開頭的分段標識符(即 ...url#!state... )會為 Google 的網頁爬蟲所索引。