18

Pythonからシェルスクリプト(コマンドではない)を実行しようとしています:

main.py
-------
from subprocess import Popen

Process=Popen(['./childdir/execute.sh',str(var1),str(var2)],shell=True)

execute.sh
----------

echo $1 //does not print anything
echo $2 //does not print anything

var1 と var2 は、シェル スクリプトへの入力として使用している文字列です。何か不足していますか、それとも別の方法がありますか?

参考:subprocess popen Pythonの使い方

4

3 に答える 3

3

実際に引数を送信しています...シェルスクリプトが印刷する代わりにファイルを書き込んだ場合、それが表示されます。スクリプトから印刷された出力を表示するには、通信する必要があります...

from subprocess import Popen,PIPE

Process=Popen(['./childdir/execute.sh',str(var1),str(var2)],shell=True,stdin=PIPE,stderr=PIPE)
print Process.communicate() #now you should see your output
于 2013-10-11T19:29:34.030 に答える