python os.execl记录下遇到的传参问题

来源:互联网 发布:js placeholder赋值 编辑:程序博客网 时间:2024/05/16 05:12

mock.py 文件内容

#!/usr/bin/env python#coding=utf-8import os,sysprint "current pid: ", os.getpid()print sys.argvlen = len(sys.argv)for i in range(len):    print sys.argv[i]

调用文件

#!/usr/bin/evn pythonimport osos.execl("/usr/bin/env", "python", "./mock.py","1", "2", "3")os.execl("./mock.py","1", "2", "3")


os.execl(path, arg0, arg1, ...)
调用文件中第一个i方法传参顺序:第一个参数file是操作系统命令的全路径,args为程序需要传递的参数,通常arg0为调用命令,从arg1开始才是需要传递的真正参数 

方式一:

os.execl("/usr/bin/env", "python", "./mock.py","1", "2", "3") 的结果为
current pid:  25302['./mock.py', '1', '2', '3']./mock.py123
<pre name="code" class="python">方式二
os.execl("./mock.py","1", "2", "3") 的结果为
[root@localhost python]# python test2.py
current pid:  25497
['./mock.py', '2', '3']
./mock.py
2
3


结果就不是自己预料的,所以还是按照方式一去执行比较妥当


0 0