我正在使用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脚本的输出是什么。
提前谢谢您
source
是一个内置的shell,它读取文件并解释当前shell实例中的命令。它类似于C #include
或Python import
。您不应该使用它来运行Shell脚本。
运行脚本的正确方法是在第一行和#!/bin/bash
上添加一个Shebang,如chmod +x yourscriptfile
。然后,操作系统将认为它是真实的可执行文件,可以从任何上下文中可靠地执行该可执行文件。在Python中,您可以这样做:
subprocess.call(['../Apps/appName/run'])
如果出于某种原因这不是一个选项,那么您可以改为在文件上显式调用bash
,因为这类似于如果您使用bash并键入source
:
subprocess.call(['bash', '../Apps/appName/run'])