gnome-terminalコマンドに変数を渡す方法

gnome-terminalコマンドに変数を渡す方法

--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$3sh$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現在の作業ディレクトリでスクリプトを使用できると仮定します。

おすすめ記事