我正在使用python,并且试图运行位于我正在尝试的另一个文件夹中的shell脚本
subprocess.call(['source','../Apps/appName/run'])
其中“ run”是我编写的shell脚本并制成了可执行文件。但是它不断给出诸如
的错误没有这样的文件或目录或**没有这样的文件或目录:“源”
我也尝试了以下方法
subprocess.call(['source','../Apps/appName/run'])
subprocess.call(['source ../Apps/appName/run'])
subprocess.call(['.','../Apps/appName/run'])
我正在尝试运行脚本并将其保留(例如,我不希望有任何返回值,也不希望看到shell脚本的输出是什么。
提前谢谢
答案 0 :(得分:0)
source
是一个内置的shell,可读取文件并解释当前shell实例中的命令。它类似于C #include
或Python import
。您不应该使用它来运行Shell脚本。
运行脚本的正确方法是在第一行添加#!/bin/bash
之类的shebang,然后添加chmod +x yourscriptfile
。然后,操作系统将认为它是真实的可执行文件,可以从任何上下文中可靠地执行该可执行文件。在Python中,您可以这样做:
subprocess.call(['../Apps/appName/run'])
如果出于某种原因这不是一个选项,则可以改为在文件上显式调用bash
,因为这与在bash中键入source
时的情况类似:< / p>
subprocess.call(['bash', '../Apps/appName/run'])