python的shell执行问题
假如有个一个tocmat进程存在,在python执行os.system('ps-ef|greptomcat_admin|grepjava|awk\'{print$2}\'...
假如有个一个tocmat进程存在,在python执行os.system('ps -ef|grep tomcat_admin|grep java|awk \'{print $2}\'') 查出来三个数,但shell执行却只有一个结果,这python执行有什么差错么?
打印的是唯一的进程id,shell和python执行却又两种不同的结果,我想知道python咋样能正确获得唯一进程id 应该是这样'ps -ef|grep tomcat_admin|grep java|grep -iv sh|awk \'{print $2}\' 展开
打印的是唯一的进程id,shell和python执行却又两种不同的结果,我想知道python咋样能正确获得唯一进程id 应该是这样'ps -ef|grep tomcat_admin|grep java|grep -iv sh|awk \'{print $2}\' 展开
2个回答
2015-07-02
展开全部
1.1 os.system(command)
在一个子shell中运行command命令,并返回command命令执行完毕后的退出状态。这实际上是使用C标准库函数system()实现的。这个函数在执行command命令时需要重新打开一个终端,并且无法保存command命令的执行结果。
1.2 os.popen(command,mode)
打开一个与command进程之间的管道。这个函数的返回值是一个文件对象,可以读或者写(由mode决定,mode默认是’r')。如果mode为’r',可以使用此函数的返回值调用read()来获取command命令的执行结果。
1.3 commands.getstatusoutput(command)
使用os.popen()函数执行command命令并返回一个元组(status,output),分别表示command命令执行的返回状态和执行结果。对command的执行实际上是按照{command;} 2>&1的方式,所以output中包含控制台输出信息或者错误信息。output中不包含尾部的换行符。
在一个子shell中运行command命令,并返回command命令执行完毕后的退出状态。这实际上是使用C标准库函数system()实现的。这个函数在执行command命令时需要重新打开一个终端,并且无法保存command命令的执行结果。
1.2 os.popen(command,mode)
打开一个与command进程之间的管道。这个函数的返回值是一个文件对象,可以读或者写(由mode决定,mode默认是’r')。如果mode为’r',可以使用此函数的返回值调用read()来获取command命令的执行结果。
1.3 commands.getstatusoutput(command)
使用os.popen()函数执行command命令并返回一个元组(status,output),分别表示command命令执行的返回状态和执行结果。对command的执行实际上是按照{command;} 2>&1的方式,所以output中包含控制台输出信息或者错误信息。output中不包含尾部的换行符。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询