--command
変数を使用してargを設定しようとしていますgnome-terminal
。
私のシェルスクリプトは次のとおりです。
buildId="aa-bb-cc"
versionCode="123456"
daily="daily"
gnome-terminal -e 'sh -c "while true; do
python acra.py $versionCode $buildId 0 $daily
sleep 600 # 10 mins
done"'
しかし、このスクリプトを実行すると新しい端末が開きますが、これらの変数を認識せず、sys.argv = ['acra.py', '0']
Pythonスクリプトとしてのみ受け取るため、cmdは次のように実行されているようです。
python acra.py 0
では、この場合、変数をどのように使用できますか?
ベストアンサー1
gnome-terminal
次のように動作すると仮定しますxterm
。
gnome-terminal -e sh -c 'some commands here' sh "$variable1" "$variable2" "etc."
コマンドラインの末尾にある文字列は、などの形式sh -c
でスクリプトに提供されます$1
。スクリプトの最初の引数文字列はシェルによって配置され、エラーメッセージに使用されます。$2
$3
sh
$0
あなたの場合:
#!/bin/sh
buildId="aa-bb-cc"
versionCode="123456"
daily="daily"
gnome-terminal -e sh -c '
while true; do
python acra.py "$1" "$2" 0 "$3"
sleep 600
done' sh "$versionCode" "$buildId" "$daily"
これは、acra.py
現在の作業ディレクトリでスクリプトを使用できると仮定します。