加载中...

Shebang(也写作 hashbang)指类 Unix 脚本文件第一行以 #! 开头的特殊标记,后跟解释器路径,如 #!/bin/bash 或 #!/usr/bin/env python3。内核据此决定用哪个程序执行该脚本,使脚本可以像普通命令一样直接运行。
当执行一个设置了可执行权限的文件时,内核检查其开头两个字节:若为 #!,则解析该行取出解释器路径与可选参数,改为启动解释器并把脚本路径作为参数传入。由于 # 在多数脚本语言中是注释符,这一行不会影响解释器本身的解析。
#!/usr/bin/env python3 借助 env 在 PATH 中查找解释器,避免硬编码路径,是跨发行版脚本的通行写法;shebang 行在多数系统上有长度限制,且传统上只支持一个附加参数。
该机制由 Dennis Ritchie 于 1980 年前后在 Unix 中引入,如今已是 shell、Python、Perl 等一切脚本语言在类 Unix 系统上的执行基石。

登录 后参与讨论
暂无讨论,来发表第一条评论吧