我正在执行这段代码:
p = subprocess.Popen(['/path/to/my/script.sh','--flag'] , stdin=subprocess.PIPE)
p.communicate(input='Y')
p.wait()
它在使用“python scriptName.py”在shell上执行时有效,但是在Eclipse中使用PyDev执行时,它失败了,原因:
/path/to/my/script.sh:第 111 行:服务:找不到命令
此 bash 脚本“script.sh”包含以下导致错误的命令:
服务 mysqld 重启
因此,从 PyDev 的上下文中运行 .sh 脚本时,无法识别“服务”。我想这与一些 ENV VAR 配置有关,找不到怎么做。
- 顺便说一句 - 调用 subprocess.Popen 时使用“shell=True”并没有解决它。