使用subprocess.Popen调用同目录bash脚本时提示文件不存在
问题原因与解决方案
你的问题出在两个可能的点上,对应解决方法如下:
未指定脚本的相对路径:系统默认会在
PATH环境变量包含的目录里查找check.sh,而当前工作目录通常不在PATH中,所以直接写check.sh会找不到文件。解决方法是加上当前目录的相对路径前缀./:import subprocess subprocess.Popen(["./check.sh", "ABC"])脚本缺少执行权限:即使路径正确,如果
check.sh没有可执行权限,也会触发类似错误。可以通过以下命令给脚本添加执行权限:chmod +x check.sh
另外还有一种替代方案,直接调用bash解释器来运行脚本,这种方式不需要脚本有执行权限,也不用加路径前缀:
import subprocess subprocess.Popen(["bash", "check.sh", "ABC"])
内容的提问来源于stack exchange,提问作者randomUser
相关产品推荐
相关产品推荐

