我和here使用python 3.x有同样的问题。我尝试了提供的解决方案,但它对我不起作用。
Python不会等待bash脚本完成并打印"结束"在bash脚本被终止之前。
我在窗户上并且已经安装了cygwin。
callBash.py:
import subprocess
print("start")
subprocess.call("sleep.sh",shell=True)
print("end")
sleep.sh:
#!/bin/bash
sleep 10
答案 0 :(得分:-1)
您永远不会检查subprocess.call
的返回值,因此您的脚本可能无法正常启动,可能是因为无效的PATH / CWD或权限或其他原因。
请改用subprocess.check_call
,以便在脚本无法运行时引发异常。例外并不容易错过。
此外,如果你有Python 3,subprocess.run(..., check=True)
更新,通常更容易使用。