为新程序动态添加新的终结器部分

为新程序动态添加新的终结器部分

我正在使用类似于 shell 脚本的东西来启动多个软件,每个软件都需要自己的终端进行输出(具体来说,我是通过 roslaunch 命令启动多个 ROS 节点)。目前,它的运行方式如下:

xterm -e ./startProgram1
xterm -e ./startProgram2
xterm -e ./startProgram3

这将在新的终端中打开每个程序。我想保留此功能,但不想为每个程序设置一个新的单独终端,而是想在 Terminator 等管理器中创建一个新部分(即,不是打开新终端,而是在现有 Terminator 窗口中创建一个新部分,并将输出放在该新部分中)。这可能吗?由于 ROS 的特殊性(请参阅上面的链接),我只能指定“终端前缀”,即启动程序命令之前的命令的“xterm -e”部分。

答案1

您可以使用tmux这里我描述了如何使用四个面板启动 tmux。

就您而言,您可以使用并调整该脚本。

#!/bin/bash

session="mysession"

if tmux has-session -t "$session"; then
  "Session $SESSION already exists."
  exit 0
fi

# start ./startProgram1 here
tmux new-session -d -s "$session" mc

# start all other applications
# use -v for vertical split and -h for horizontal

tmux select-window -t "$session":0

# start ./startProgram2 here
tmux split-window -v nano

tmux select-window -t "$session":0

# start ./startProgram3 here
tmux split-window -h vi

tmux attach -t "$session"

目前的行为是

在此处输入图片描述

相关内容