python status,output = commands.getstatusoutput("cmd") 诡异现象

9 篇文章 0 订阅

python status,output = commands.getstatusoutput("cmd") 诡异现象


test.py

#!/usr/bin/python

import commands
import sys


def do_cmd(cmd='pwd'):
  status,output = commands.getstatusoutput(cmd);
  print cmd
  print 'status code: ', status
  print 'output: ', output



if __name__ == '__main__':
  if len(sys.argv) != 2 :
    print "usage: %s cmd" % sys.argv[0]
    sys.exit(1);

  cmd = sys.argv[1]
  do_cmd(cmd)
  print
  cmd = "( " + cmd + " &)"
  do_cmd(cmd)


执行命令行: 

python test.py "ls -l xxxxxx"

ls -l xxx
status code:  512
output:  ls: xxx: 没有那个文件或目录


( ls -l xxx &)
status code:  0
output:  ls: xxx: 没有那个文件或目录


虽然命令命令没有成功执行,第二种方式仍然返回状态码: 0 ; 表示成功;


诡异的bug,调了半天;

记录一下!



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值