我有一个脚本正在运行一些(超过 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[@]}"