我在几种脚本语言中都注意到了这一点,但在这个例子中,我使用的是 python。在许多教程中,它们会在第一行以 #!/usr/bin/python3
开头。我不明白为什么我们有这个。
- 操作系统不应该知道它是一个 python 脚本吗(显然它已经安装,因为你正在引用它)
- 如果用户使用的操作系统不是基于 unix 的,该怎么办
- 无论出于何种原因,该语言都安装在不同的文件夹中
- 用户有不同的版本。尤其是当它不是完整版本号时(如 Python3 与 Python32)
如果有的话,由于上面列出的原因,我可以看到这会破坏 python 脚本。
最佳答案
#!/usr/bin/python3
是 shebang line .
shebang 行定义解释器所在的位置。在这种情况下,python3
口译员位于 /usr/bin/python3
. shebang 线也可以是 bash
, ruby
, perl
或任何其他脚本语言的解释器,例如:#!/bin/bash
.
没有shebang行,操作系统不知道它是python脚本,即使你在脚本上设置执行标志(chmod +x script.py
)并像./script.py
一样运行它.要使脚本在 python3 中默认运行,可以将其调用为 python3 script.py
或者设置shebang线。
您可以使用 #!/usr/bin/env python3
以在不同系统安装语言解释器的情况下实现跨不同系统的可移植性。
关于python - #!/usr/bin/python3 shebang 的目的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7670303/