我是 linux shell 脚本的新手。我想编写一个 shell 脚本,它将打开带有多个选项卡的终端;它应该在每个选项卡中运行 rtsp 客户端应用程序。
为此,我已经在这个论坛上解决了问题,并尝试像下面这样编码,
tab="--tab-with-profile=Default -e "
cmd="java RunRTSPClient"
for i in 1 2 3 4 5
do
#
foo="$foo $tab $cmd"
done
gnome-terminal $foo
exit 0
Run Code Online (Sandbox Code Playgroud)
它正在运行并打开带有选项卡的终端窗口,但它会突然关闭。我没有收到任何错误。
cd进入每个选项卡中的不同文件夹(即:运行唯一的命令)。 PS1通过修改其局部变量使每个选项卡具有唯一的标题我想要编写此脚本,以便我可以单击桌面上的脚本并让它打开终端,就像我想要的日常开发环境一样。
\n\n我有这个脚本来尝试打开 3 个终端选项卡,并在选项卡中运行独特的命令:
\n\n#!/bin/bash\n\ngnome-terminal --tab -- bash -ic "set-title title 1; exec bash"\ngnome-terminal --tab -- bash -ic "cd ~; set-title title 2; exec bash"\ngnome-terminal --tab\nRun Code Online (Sandbox Code Playgroud)\n\n当我使用 运行它时./open_tabs.sh,它会打开 3 个新选项卡,但不幸的set-title是无法设置选项卡标题!看来该PS1变量没有随着我的set-title调用而保持设置状态。根据此答案及其下面的评论,可以exec bash保持选项卡打开。
我已经像这样set-title定义了一个函数~/.bashrc。其目的是在任何终端窗口的顶部设置标题字符串。当我手动使用它时它工作得很好。例如:set-title hey how are you?将输入“嘿,你好吗?” 在我的终端窗口的顶部。