什么是线
#!/usr/bin/env python
在python脚本的第一行用于?
在UNIX和Linux中,它告诉哪个二进制文件用作解释器(另请参见Wiki页面).例如,shell脚本由/bin/sh
.解释.
#!/bin/sh
现在使用python它有点棘手,因为你不能假设二进制文件的安装位置,也不想要使用它.这样的/usr/bin/env
伎俩.它使用的是第一个python二进制文件$PATH
.你可以检查一下执行情况which python
使用解释器行,您可以通过将脚本修改为可执行文件来运行脚本.然后运行它.因此以脚本开头
#!/usr/bin/env python
这两种方法是等价的:
$ python script.py
并且(假设你早些时候已经完成chmod +x script.py
)
$ ./script.py
这对于创建系统范围的脚本很有用.
cp yourCmd.py /usr/local/bin/yourCmd chmod a+rx /usr/local/bin/yourCmd
然后你可以随时随地调用它
yourCmd
这被称为shebang线:
在计算中,shebang(也称为hashbang,hashpling或pound bang)指的是字符"#!" 当它们是文本文件中的前两个字符时.类Unix操作系统将这两个字符作为文件是脚本的指示,并尝试使用文件中第一行其余部分指定的解释器来执行该脚本.例如,Bourne shell的shell脚本从第一行开始:
在UNIX和类似的操作系统下,该行告诉如果文件被执行,将使用哪个解释器.
正如安德里所说.在Windows中,从命令行启动时运行文件的可执行文件依赖于关联:
16:12:40.68 C:\>assoc .py .py=Python.File 16:13:53.45 C:\>assoc Python.File Python.File=Python File 16:14:01.70 C:\>ftype Python.File Python.File="C:\Python30\python.exe" "%1" %*
在Unix中,shell解释器通过打开文件并查看文件中是否有命令来进行推断.