Shebang(也称为 Hashbang 或 Hash-bang)是一个特殊的字符序列,通常出现在脚本文件的第一行,形式为 #!,后面跟着一个路径。它在脚本文件中起到指定解释器的作用。

以下是关于 Shebang 的一些关键点:

1、作用

  • Shebang 告诉操作系统使用哪个程序来执行脚本。例如:

    • #!/bin/bash 表示用 Bash 解释器执行脚本。

    • #!/usr/bin/python3 表示用 Python 3 解释器执行脚本。

  • 它使得脚本文件可以直接像可执行文件一样运行,而不需要显式调用解释器。

2. 工作原理

  • 当操作系统读取脚本文件时,如果发现第一行以 #! 开头,就会解析后面的路径,找到对应的解释器程序。

  • 然后操作系统会调用该解释器,并将脚本文件作为参数传递给解释器。

3. 常见示例

  • Bash 脚本

#!/bin/bash
echo "Hello, World!"
  • Python 脚本

#!/usr/bin/env python3
print("Hello, World!")

这里使用了 env,它会自动查找系统中可用的 Python 3 解释器路径,而不是硬编码路径(如 /usr/bin/python3)。

  • Perl 脚本

#!/usr/bin/perl
print "Hello, World!\n";

4. 注意事项

  • Shebang 的路径必须是绝对路径。

  • 如果脚本文件没有执行权限,即使有 Shebang,也无法直接运行(如下图)。需要使用 chmod +x script.sh 命令来赋予执行权限。

  • Shebang 通常用于类 Unix 系统(如 Linux 和 macOS),Windows 系统不支持 Shebang,但可以通过其他方式(如关联扩展名)实现类似功能。

Shebang 是脚本编程中一个非常实用的功能,它简化了脚本的运行方式,使得脚本更加独立和可移植。