在实验楼学习python3简明教程时,里面的python文件开头都会加上一句
#!/usr/bin/env python3
开始还以为是个注释什么的,后来才发现当在命令行里执行python文件时,就不用输入
python xxx.py
而是,直接运行
./xxx.py
不太懂其中的原理,就上网查了一下,才明白#!的作用
1.如果脚本文件没有#!这一行或者#!指定的解释程序不是可执行文件,那么该脚本被执行时会默认使用当前shell去解释这个脚本
2.如果#!指定的解释程序没有执行权限,那么会报错“Permission denied”;
如果#!指定的解释程序不存在,那么会报错“No such file or directory”
ps: #!之后的解释程序必须写绝对路径,因为它是不会自动到$PATH中寻找解释器的
所以#!/usr/bin/env python3
这句代码实际是指定了
#!读法及名称由来
#和!都来自于Unix术语,#通常被称为sharp、hash或mesh,而!则被称为bang。
所以#!连在一起写作“sha-bang”、“sh-bang”或者“shebang”(最常用)
长期以来,shebang 都没有正式的中文名称。
Linux 中国翻译组的 GOLinux 将其翻译为:释伴,
即解释伴随行的简称,同时又是 shebang 的音译。