shell调用python获取返回值,shell脚本获取命令返回值
接触python时间不长,但最近遇到了一些棘手的问题。关于子流程。打开进程文件指针
在shell上以ret=subprocess.popen(cmd,shell=true,stdout=subprocess)的形式运行cmd命令。管道)
获取ret.returncode中的返回值
通过retout=ret . communication()[0]0]获取输出
问题在于cmd的格式、返回值和输出。
如果cmd有重定向操作,retoutd将无法获得cmd的输出;
如果在cmd中指定了后台执行,ret.returncode无法获取cmd的返回值,只能获取shell执行命令的返回值。
如果cmd被重定向并在后台运行,ret.returncode和retout将无法获得cmd的返回值和输出。
例如:
测试. sh:
echo 这是test.sh
127号出口
测试. py:
cmd=
ret=subprocess.popen(cmd,shell=true,stdout=PIPE)).
retout=ret.comunication(
Print (ret.return code,retout))。
结果输出:127这是test.sh
Cmd=test.sh 结果输出:0这是test.sh
Cmd=test.sh abc.txt 结果输出:127
Cmd=test.sh abc.txt 结果输出:0
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。