使用python脚本运行运行另一个脚本的bash脚本时输出冻结

时间:2016-07-27 20:01:26

标签: python bash shell subprocess popen

我一直能够使用Python的subprocess.Popen来运行bash脚本而没有任何问题。

但是,我现在正在尝试使用Popen运行bash脚本,然后该bash脚本正在尝试运行另一个脚本。我没有重定向Popen得到的输出,所以所有的输出都会出现在终端上。我使用的是Ubuntu Linux。

但是,当bash脚本调用的脚本完成时,终端上的输出会冻结,而其余的bash脚本和python脚本会在后台继续。 我知道让python脚本运行bash脚本并运行bash脚本可能不是最顺利的做法,但我希望能解决这个问题。我觉得这是我在python脚本中运行原始bash脚本的问题。以下是我使用的代码:

p = subprocess.Popen(["bash", "myScript.sh", param1, param2, param3])
p.wait()

我最初使用shell=True作为Popen,但这导致了同样的问题。我也尝试删除p.wait(),但这也无法解决问题。

有什么想法吗?我应该使用不同的python方法来运行bash脚本吗?

0 个答案:

没有答案