Shebang
类Unix脚本的开头的“#!”符号 / 维基百科,自由的 encyclopedia
在计算领域中,Shebang(也称为Hashbang)是一个由井号和叹号构成的字符序列#!
,其出现在文本文件的第一行的前两个字符。
在文件中存在Shebang的情况下,类Unix操作系统的程序加载器会分析Shebang后的内容,将这些内容作为解释器指令,并调用该指令,并将载有Shebang的文件路径作为该解释器的参数[1][2]。
例如,以指令#!/bin/sh
开头的文件在执行时会实际调用/bin/sh程序(通常是Bourne shell或兼容的shell,例如bash、dash等)来执行。这行内容也是shell脚本的标准起始行。
由于#
符号在许多脚本语言中都是注释标识符,Shebang的内容会被这些脚本解释器自动忽略。
在#
字符不是注释标识符的语言中,例如Scheme,解释器也可能忽略以#!
开头的首行内容,以提供与Shebang的兼容性[3]。
"Shebang"或者说"Hashbang"的名字有时也被当做Ajax应用程式中的分段标识符,用于浏览器的状态保存;Google网站站长中心提到,以叹号开头的分段标识符(即...url#!state...)会为Google的网页爬虫所索引。