如何通过Shell脚本在Lxterminal中打开多个标签页?
解决lxterminal通过Shell脚本打开多个标签页的问题
我之前也踩过lxterminal多标签启动的坑,它的参数逻辑和gnome-terminal差异不小,帮你整理几个靠谱的实现方法:
方法一:启动时直接打开多个标签
lxterminal支持用--tab参数来指定新标签,搭配--command可以给每个标签指定要执行的命令。注意要在命令末尾加exec bash,否则执行完命令标签会自动关闭:
# 打开两个标签,分别执行不同命令并保持会话 lxterminal \ --tab --command="bash -c 'echo 这是标签1; exec bash'" \ --tab --command="bash -c 'cd ~/projects && echo 这是标签2; exec bash'"
如果只是需要打开空标签,直接省略--command即可:
lxterminal --tab --tab --tab
方法二:给已运行的lxterminal添加新标签
如果想在已经打开的lxterminal窗口中新增标签,可以借助DBus接口实现,不需要重新启动终端:
# 发送DBus指令添加新标签,同时指定要执行的命令 dbus-send \ --session \ --type=method_call \ --dest=org.lxde.LxTerminal \ /org/lxde/LxTerminal \ org.lxde.LxTerminal.NewTab \ string:"bash -c 'echo 新增标签; exec bash'"
注意:这个方法要求lxterminal已经在运行,否则会抛出DBus连接失败的错误。
为什么之前没成功?
lxterminal的参数设计和gnome-terminal不一样:
- gnome-terminal常用
--tab-with-profile或直接在--tab后接命令 - lxterminal则需要明确用
--tab声明每个新标签,再用--command绑定对应标签的执行命令。你可以再核对下lxterminal --help里的说明,里面其实明确标注了这两个参数的用法:
--tab Open a new tab in the last opened window
--command=COMMAND Execute the command inside the terminal
内容的提问来源于stack exchange,提问作者Anna K
相关产品推荐
相关产品推荐

