1

我有一个我喜欢通过子进程在python中执行的脚本(是的,它必须在 中)。现在我这样称呼:shsh

subprocess.check_call( ['sh' + command] )

哪里command是:

echo 'someformat : : '${ENV_VAR}'/efc ;' > targetfile

可悲的是,这给了我:

sh: 0: Can't open echo 'someformat : : '${ENV_VAR}'/efc ;' > targetfile

有人可以指导我完成使命令生效的步骤sh并解释原因。

4

2 回答 2

4

您必须使用-c参数运行 sh:

subprocess.check_call( ['sh', '-c', command] )
于 2013-04-26T07:18:55.113 回答
2

尝试这个:

command = "echo 'someformat : : '${ENV_VAR}'/efc ;' > targetfile"
subprocess.check_call(["sh", "-c", command])

参数-c修改sh行为以从下一个参数的字符串中读取命令。并且参数必须包含在列表中。

于 2013-04-26T07:31:07.203 回答