Skip to content

【杂谈】我有特别的 shebang 使用方法

Published: at 03:00编辑

前言

有时候我们会在各种语言的第一行看见如下标志,你可能并不知道这是什么,但还是按照网上的教程写进了自己的程序代码中。

#!/usr/bin/python3

print("Hello, World!")

# 来自「菜鸟教程」 -> https://www.runoob.com/python3/python3-tutorial.html

其实这个第一行就叫做「shebang 行」,又称释伴行1(即 解释伴随行 的简称),是一种广泛存在于各类脚本中,用于告诉系统用哪一个解释器来解释脚本。「shebang 行」在解释型语言脚本中更为常见。

定义

shebang

在 Shell 脚本中,shebang(也称为 hashbang)是指脚本文件的第一行,用于指定解释器路径2。「shebang」通常作为类 unix 系统中脚本的第一行的前两个字符,「shebang」的后面接的是用于解释执行脚本的解释器程序路径,像 Python / Shell(Bash or Zsh) / Perl 等等一些常见的解释器。

#!/path/to/interpreter

... 一些指令

# is often called ==sharp== and ! is called ==Bang==, hence the name sharp bang, but generally people say it shebang instead of ==sharpbang==. 3

需要注意的是,「shebang」只能出现在脚本中的第一行,「shebang」如果出现在脚本语句的中间位置,会被认为是注释,导致脚本无法执行,所以「shebang 行」只能出现在脚本第一行。然后下面写对应语言的脚本。

shebang 行

由此可见,「shebang」所存在的这一行就叫做「shebang 行」。

特性

「shebang」的好处在于,允许脚本和数据文件充当系统命令,无需在调用的时候由用户指定解释器,从而对用户或者其他程序==隐藏了其执行的细节==。

结语

使用「shebang」在开发大型项目时可以提供统一的开发环境、便于脚本管理、支持多语言和工具的灵活性,并支持自动化部署和集成等方面的用途。虽然只有短短一行,「shebang」在开发团队协作时有助于降低使用成本,方便脚本分享和迁移。它永远是开发团队协作中一个简单但非常实用的小技巧!

Footnotes

  1. 参考 https://blog.csdn.net/qq_43387908/article/details/138010572 2

  2. https://www.cssjs.cn/doc/9 1.4. 解释伴随行

  3. Github: MadhavBahl/shebang-everything

  4. 参考 https://blog.csdn.net/weixin_42311000/article/details/118511506 2 3


上一篇
Hey!我的 API 上线了~
下一篇
为什么定位会出现“甘肃省兰州市榆中县小康营乡潘家庄”?