gnome-terminalで複数のコマンドを実行する方法

gnome-terminalで複数のコマンドを実行する方法

15以上のアプリケーションを実行するスクリプトがあります。たとえば、次のようになります。

cd mypath
sleep 1
gnome-terminal -t App1 --tab -e "./App1" 
sleep 1
gnome-terminal -t App2 --tab -e "./App2" 
..
..
sleep 1
gnome-terminal -t App15 --tab -e "./App15"  

これにより、15の異なる端末でアプリケーションが起動することがわかります。

./AppX今何が起こっても+を介してCtrl何かを殺すと、何らかのC理由でプログラムが終了し、端末が終了します。

Ctrl私が望むのは+を押すと C終了しますが、./AppX端末は開いたままです。これは、再起動したいときにAppX上矢印キーを押してEnterを押す必要があるためです。

編集する::
答えを得ました::askubuntu.comで許可されている回答をご覧ください。

もう一つの質問は: 複数のコマンドを実行する方法は次のとおりです。

gnome-terminal -e "sleep 1; AppX"  

動作しません。さまざまな異なる方法(&、&&、|)を試しましたが、すべて失敗しました。

ベストアンサー1

次のコマンドは、複数のGNOME端末に15個のタブを持つ新しい端末を開きます。

cd mypath
multi-gnome-terminal \
  --add-tab -tname App1 --tcommand "./App1" \
  --add-tab -tname App2 --tcommand "./App2" \
  ...
  --add-tab -tname App15 --tcommand "./App15" \

これらの睡眠が本当に必要な場合は、次のように組み合わせることができます。

cd mypath
multi-gnome-terminal \
  --add-tab -tname App1 --tcommand "sleep 1; ./App1" \
  --add-tab -tname App2 --tcommand "sleep 2; ./App2" \
  ...
  --add-tab -tname App15 --tcommand "sleep 15; ./App15" \

実行するコマンドの数/リストを動的に変更する必要がある場合は、以下を使用できます。

cd mypath
cmd=(multi-gnome-terminal)
cmd=("${cmd[@]}" --add-tab -tname App1 --tcommand "sleep 1; ./App1")
cmd=("${cmd[@]}" --add-tab -tname App2 --tcommand "sleep 2; ./App2")
  ...
cmd=("${cmd[@]}" --add-tab -tname App15 --tcommand "sleep 15; ./App15")
"${cmd[@]}"

おすすめ記事