2013-04-26 40 views
1

我有一個劇本,我喜歡通過(是的,它必須是在sh)在蟒蛇執行文件。 現在我打電話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

試試這個:

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

參數-c修改sh行爲,從下一個參數的字符串讀取命令。 參數必須包含在列表中。

4

你必須與-c PARAM運行SH:

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