私のpythonプログラムの印刷コマンドが別のプログラムから読み込むために公開されるように、シェルスクリプトから私のpythonプログラムを実行する必要があります。 シェルスクリプト:シェルスクリプトからPythonプログラムにパラメータを挿入
#!/bin/bash
if [ $# -lt 1 ] || [ $# -gt 2 ];then
echo "Usage: $0 APK <duration in seconds>"
exit 1;
fi
printf "$(python '/root/Desktop/DroidBox_4.1.1/scripts/droidbox.py' $1 $2 -c 'import sys; exec sys.stdin.read()')"
は私のPythonプログラムはparametrsに$ 1と$ 2を取得する必要が、それはparametrsとしてそれらを認識するがparametrsとして後-cコマンドを取っていません。
回答:私の他のプロジェクトでプロセス入力ストリームを取得することは、私のためには機能しません。唯一の方法は、-cオプションと'exec sys.stdin.read() 'コマンドを使用することです。
ありがとうございました。
'droidbox.py 'とは何ですか?そのスクリプトで 'print(sys.argv)'を実行すると、何が表示されますか? –
printfの中でpythonの出力を直接使用するのではなく、代わりに 'printf"%s "" $(python ... ' シェルスクリプトのstdinは何の入力を読みますか? また、 $ 1と$ 2の変数を割り当てた後、droidbox.pyの呼び出しで変数名を使用して、誰かが位置パラメータでマングリングするのを避けることができます。 –