Shebang
Shebang继承自UNIX,也有shabang、shbang的称呼,现中文称为“释伴”。
Python中,可用“which python3”命令的返回值来设置,要使用绝对路径。如在python文件首行输入:
#! /usr/bin/python3
再将该python文件赋予可执行权限,即可在命令行直接执行该程序。如
chmod +x myfile.py
./myfile.py
使用shebang还要了解以下知识:
- 如果脚本文件中没有#!行,那么执行时会默认采用当前Shell去解释这个脚本(即:$SHELL环境变量)。
- 如果#!之后的解释程序是一个可执行文件,那么执行这个脚本时,就会把文件名及其参数一起作为参数传给那个解释程序去执行。
- 如果#!指定的解释程序没有可执行权限,则会报错“bad interpreter: Permission
denied”。如果#!指定的解释程序不是一个可执行文件,那么指定的解释程序会被忽略,转而交给当前的SHELL去执行这个脚本。 - 如果#!指定的解释程序不存在,那么会报错“bad interpreter: No such file or directory”。注意:#!之后的解释程序,需要写其绝对路径,并且不会自动到$PATH中寻找解释器的。
- 使用类似于”python3 myfile.py”这样的命令来执行程序,那么,#!这一行将会被忽略掉,解释器当然是用命令行中指定的解释器。
- 脚本文件要有可执行权限。
参考:网上文献2篇