Я использую что-то похожее на сценарий оболочки, который запускает несколько частей программного обеспечения, для каждого из которых нужен собственный терминал для вывода (в частности, я запускаю несколько узлов ROS из команды roslaunch ). В настоящее время он работает примерно так:
xterm -e ./startProgram1
xterm -e ./startProgram2
xterm -e ./startProgram3
, который откроет каждую из программ в новом терминале. Я хотел бы сохранить эту функциональность, но вместо того, чтобы иметь новый отдельный терминал для каждого, я бы хотел новый раздел в диспетчере, таком как Terminator (т.е. вместо открытия нового терминала, он создает новый раздел в существующем окне Terminator и помещает вывод в этот новый раздел). Будет ли это возможно? Из-за особенностей ROS (см. Ссылку выше) я могу указать только «префикс терминала», то есть часть «xterm -e» команды, которая стоит перед командой для запуска программы.
Вы могли использовать 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"
текущее поведение