如何在 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-terminal 中開啟帶有 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[@]}"

相關內容