在python中执行bash时管道破损

时间:2018-12-18 13:02:49

标签: python bash

每个人,当尝试在python中执行bash时,我都会遇到断管的错误。

这是我的bash文件run.sh

INPUT=`python -c "print 'uid='+'A'*0x4"`
TEST=$INPUT
LEN=$(echo -n "$INPUT" | wc -c)
cp $(which qemu-mipsel-static) ./qemu
echo "$INPUT" | chroot . ./qemu -E CONTENT_LENGTH=$LEN -E CONTENT_TYPE="application/x-www-form-urlencoded" -E REQUEST_METHOD="POST" -E HTTP_COOKIE=$TEST -E REQUEST_URI="/authentication.cgi" -E REMOTE_ADDR="192.168.1.1" htdocs/web/authentication.cgi 2>/dev/null
echo 'run ok'
rm -f ./qemu

这是我尝试在python中调用执行bash的方式:

bash_file_path =run.sh
op = commands.getstatusoutput("bash %s" % (bash_file_path) )    
print op[1]

但是,我掩盖了run.sh第5行中的错误:

run.sh:第5行:echo:写错误:管道损坏

我也尝试了子流程,但是遇到了相同的错误:

p = subprocess.Popen(["bash", bash_file_path], shell=False, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE )
print p.stdout.readlines()
print p.stderr.readlines()

结果:

[]
[run.sh: line 5: echo: write error: Broken pipe]

0 个答案:

没有答案
相关问题