shell调用python获取返回值,shell脚本获取命令返回值

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: