子进程Popen无法执行shell脚本

时间:2018-04-16 05:28:49

标签: python cgi

如果我在REPL中执行它,下面有以下python代码。但是,当我运行脚本时,它甚至不打开script1.sh shell脚本。

import subprocess
from subprocess import Popen

p = subprocess.Popen(["./script1.sh","-a",param1],stdout=subprocess.PIPE, stderr=subprocess.PIPE)
out,err = p.communicate()
print("Output: ", out)
print("Error: ", err)

它没有任何语法错误,但我在输出中发现了以下差异。

运行python脚本时的输出

('Output: ', 'Content-type: text/html; charset=UTF-8;\nExpires: 0;\nLast-Modified: Mon Apr 16 09:11:01 GST 2018\nCache-control: no-store, no-cache, must-revalidate;\n\n')
('Error: ', '')

从REPL运行python代码时的输出

('Output: ', 'Content-type: text/html; charset=UTF-8;\nExpires: 0;\nLast-Modified: Mon Apr 16 05:07:08 GMT 2018\nCache-control: no-store, no-cache, must-revalidate;\n\n**File\x02/path_to_file/generate_file.txt**\n')
('Error: ', '')

如图所示,从REPL执行python脚本时的输出会生成文件,但不会生成正常的python脚本。知道为什么会这样吗?

0 个答案:

没有答案