如何从sh写文件

时间:2013-04-26 07:05:50

标签: python shell sh

我有一个脚本我喜欢在 python 中通过 subprocess 执行(是的,它必须在sh中)。 现在我这样打电话给sh

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

其中command是:

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

可悲的是,这让我:

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

有人可以带我完成步骤,让命令在sh中运行并解释原因。

2 个答案:

答案 0 :(得分:4)

你必须使用-c param运行sh:

subprocess.check_call( ['sh', '-c', command] )

答案 1 :(得分:2)

试试这个:

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

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