我有一个脚本我喜欢在 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
中运行并解释原因。
答案 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
行为以从下一个参数的字符串中读取命令。
参数必须包含在列表中。