/usr/bin/env python有什么用?
我们经常会在别人的脚本或者项目的入口文件里看到第一行是下面这样
#!/usr/bin/python
或者这样
#!/usr/bin/env python
这两者有什么区别呢?
稍微接触过linux的人都知道就是我们执行
进入console 模式里的
而当你在可执行文件头里使用 +
,意思就是说你得用哪个软件(python)来执行这个文件。
那么加和不加有什么区别呢?
不加的话,你每次执行这个脚本时,都得这样:
有没有一种方式?可以省去每次都加呢?
当然有,你可以文件头里加上,那么当这个文件有可执行权限时,只直接写这个脚本文件,就像下面这样。
明白了这个后,再来看看这个又是什么意思?
当我执行env python时,自动进入了python console 的模式。
这是为什么?和直接执行python 好像没什么区别呀
当你执行时,它其实会去
里(也就是
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin )这几个路径里去依次查找名为python的可执行文件。
找到一个就直接执行,上面我们的python 路径是在里,在
列表里倒数第二个目录下,所以当我在
下创建一个名字也为python 的可执行文件时,就会执行
了。
具体演示过程,你可以看下面。
那么对于这两者,我们应该使用哪个呢?
个人感觉应该优先使用,因为不是所有的机器的python 解释器都是
argument和parameter的区别
arguments和parameter 的翻译都是参数,在中文场景下,二者混用基本没有问题,毕竟都叫参数嘛。
但若要严格再进行区分,它们实际上还有各自的叫法
举个例子,如下这段代码,为argument,而msg 为
def output_msg(msg):
print(msg)
output_msg("error"