之前在学习python的时候,发现总是会在python文件的第一行声明文件的执行解释器。例如:
#!/usr/bin/python
表示声明该文件是由/usr/bin/python程序执行的脚本。
目前发现这种声明脚本执行方式的写法有两种。
第一种就是上面这种 #!/usr/bin/python
还有一种是 #!/usr/bin/env python
#!/usr/bin/python
是告诉操作系统执行这个脚本的时候,调用/usr/bin下的python解释器;
#!/usr/bin/env python
这种用法是为了防止操作系统用户没有将python装在默认的/usr/bin路径里。当系统看到这一行的时候,首先会到env设置里查找python的安装路径,再调用对应路径下的解释器程序完成操作。
可以看出,第一种写法是直接指定了绝对路径下的某个程序作为解释器;第二种写法是根据当前的环境配置寻找解释器。
例如我现在有一个PHP的脚本文件(tast.php),是用于在服务器上通过定时任务调用的。
php tast.php
<?php
echo "hello world";
./task.php
#!/usr/bin/env php
<?php
echo "hello world";