首页 > 解决方案 > 我想在不同的选项卡/终端上的同一个 shell 脚本中运行一些命令

问题描述

我实际上想在不同的选项卡或终端上运行相同脚本的一些命令,因为这些命令正在激活服务器并监听不同的端口。所以他们必须始终保持活跃。同样,我想引用选项卡或终端,以便稍后在脚本结束时关闭它们。请帮忙。

我尝试了一个简单的脚本测试,看看是否能找到打开其他标签的方法:

tab=" --tab"
options=()

cmds[1]="echo Banana"

cmds[2]="echo Cat"


for i in 1 2; do
options+=($tab  -e "bash -c \"${cmds[i]} ; bash\"" ) 
done

gnome-terminal "${options[@]}"

exit 0

但我得到了这个结果:

./test.sh
# Option “-e” is deprecated and might be removed in a later version of gnome-terminal.
# Use “-- ” to terminate the options and put the command line to execute after it.
# Option “-e” is deprecated and might be removed in a later version of gnome-terminal.
# Use “-- ” to terminate the options and put the command line to execute after it.

有没有办法打开标签?并获得对每一个的引用,以便在处理完成后关闭与服务器相关的命令?

标签: linuxbashshellterminalscripting

解决方案


您可以使用一个名为tmux. 它是一个终端-x er,如screen有了它,您可以在同一个终端窗口中打开不同的会话和窗口(这些就像选项卡)。它们可以通过脚本按名称或 id 引用。

您的 Linux 发行版的包管理器很可能具有tmux.

PS:我必须发布答案而不是评论,因为我没有足够的评论声誉。


推荐阅读