从Python脚本中运行.sh文件?

3

我正在使用我开发的Python脚本在Oracle Linux 6.8上运行一个.sh脚本时遇到了问题。我在Windows OS中开发了这些脚本,并且它们可以顺利运行,但是现在我尝试修改这些脚本以便在Linux上运行它们,但由于我不熟悉Linux OS,所以遇到了问题。

在Windows OS中,我使用Python的Popen命令来运行一个.bat文件,例如:p = Popen("StartScript.bat", cwd=r"My path")

其中StartScript.bat是.bat文件的文件名,My Path是.bat文件所在的路径。这在Windows OS中非常好用,但是如果我想要在Linux OS中运行一个StartScript.sh文件,该怎么做呢?

2个回答

5

根据您提供的链接,Gaurav Pathak先生,当使用Popen时执行.sh文件无需输入路径(.sh文件位于哪里)?这是正确的吗? - viganqerimi
2
文件未找到错误:[Errno 2] 没有这样的文件或目录:“start_stageconv.sh” - viganqerimi
我需要的是在LINUX操作系统中与我在Windows操作系统中使用的popen命令相当的命令,以便我可以使用Python执行我的.sh脚本。这个会起作用吗:p = Popen(['./start_stageconv.sh'], stdout=PIPE, stderr=PIPE)。 - viganqerimi
我需要在哪里写路径?这个会起作用吗? p = Popen(["sh","/u01/app/Oracle_ODI_11/oracledi/agent/bin/start_stageconv.sh"],stdout = PIPE,stderr = PIPE) - viganqerimi
是的,那应该可以。或者尝试使用 subprocess 的 cwd 参数。 - Gaurav Pathak
显示剩余2条评论

4

使用这些代码:

import os
os.popen('sh command')

例如
import os
os.popen('sh /home/oracle/scripts/start.sh')

享受


如何传递参数? - tronku

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接