我一直能够使用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脚本吗?