Title here
Summary here
Shebang 是 Unix 和类 Unix 操作系统中的一个特殊符号,由字符 #!
组成,
用于指示脚本文件应该由哪个解释器来执行。它通常出现在脚本文件的第一行,后面跟着解释器的路径。
Shebang 使得脚本文件能够像可执行程序一样直接运行,而不必手动调用解释器。
#
在英语中表示 hash 或 sharp,!
在编程和命令行中表示 bang,
这两个符号组合在一起就成了 hash-bang 或 sharp-bang。
随着时间的推移,hash-bang 最终简化为 shebang。
Shebang 后面指定的路径是解释器的位置,例如:
系统会使用该路径下的 bash 来执行这个脚本内容。
不同类型的脚本可以统一使用 ./file
的形式执行,无需显式调用解释器。
无需使用 bash file
执行,直接使用 ./file
。
无需使用 python file
执行,直接使用 ./file
。
我们在 bash 脚本中常常会看到下面的例子。
env
是一个与环境变量相关的命令。
当后面跟的参数是 bash
时,它会根据环境变量 PATH
提供的路径查找 bash 的解释器。
这样做的好处是无须写死 bash 解释器的路径,因为在不同的系统中,bash 解释器可能会在不同的位置。
对于上面的 python 例子,更好的 Shebang 是使用 env。
如果没有 Shebang,可以手动调用解释器。