linux - 我想在不同的选项卡/终端上的同一个 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.
有没有办法打开标签?并获得对每一个的引用,以便在处理完成后关闭与服务器相关的命令?
解决方案
您可以使用一个名为tmux
. 它是一个终端-多x er,如screen。有了它,您可以在同一个终端窗口中打开不同的会话和窗口(这些就像选项卡)。它们可以通过脚本按名称或 id 引用。
您的 Linux 发行版的包管理器很可能具有tmux
.
PS:我必须发布答案而不是评论,因为我没有足够的评论声誉。
推荐阅读
- node.js - 如何为首次构建电子设置 package.json
- reactjs - jsx 函数中使用的括号渲染和卷曲
- android - 将数据发布到 RESTful-webservice - 为什么此代码在 Eclipse 中有效,但在 android 中无效?
- php - 我无法使用从 .txt 获得的数据连接到数据库
- javascript - javascript - 将按钮单击的处理推迟到页面加载后
- java - 如何从子类更改父类中变量的值?
- scala - 如何在scala中使用高阶函数计算列表的阶乘
- .net-core - 如何在 Visual Studio Mac 中为 NuGet 设置本地/远程源
- ios - 外键约束在 sqlite3 Objc 中不起作用
- pine-script - 请帮助我使用 pinescript 中的以下代码