как выполнить более одной команды 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

Следующая команда откроет новый терминал с 15 вкладками в multi-gnome-terminal:

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[@]}"

Связанный контент