
次のようなアプリケーション (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
でany を kill すると、何らかの理由でプログラムが終了し、そのターミナルも終了します。 CtrlC
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[@]}"