Динамически добавлять новый раздел Терминатор для новой программы

Я использую что-то похожее на сценарий оболочки, который запускает несколько частей программного обеспечения, для каждого из которых нужен собственный терминал для вывода (в частности, я запускаю несколько узлов ROS из команды roslaunch ). В настоящее время он работает примерно так:

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

, который откроет каждую из программ в новом терминале. Я хотел бы сохранить эту функциональность, но вместо того, чтобы иметь новый отдельный терминал для каждого, я бы хотел новый раздел в диспетчере, таком как Terminator (т.е. вместо открытия нового терминала, он создает новый раздел в существующем окне Terminator и помещает вывод в этот новый раздел). Будет ли это возможно? Из-за особенностей ROS (см. Ссылку выше) я могу указать только «префикс терминала», то есть часть «xterm -e» команды, которая стоит перед командой для запуска программы.

1
задан 7 May 2015 в 23:25

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"

текущее поведение

enter image description here

0
ответ дан 7 May 2015 в 23:25

Другие вопросы по тегам:

Похожие вопросы: