я пытался
tmux -c "shell command" split-window
но это не похоже на работу.
Используя tmux split-window
, можно разделить новое окно.
ОБНОВЛЕНИЕ :
Используя tmux split-window 'exec ping g.cn'
можно запустить команду ping, но при остановке новое окно будет закрыто.
man tmux | less -p remain-on-exit
...Ответы:
Использование:
Команда
split-window
имеет следующий синтаксис:(из
man tmux
раздела «Окна и панели»). Обратите внимание, что порядок важен - команда должна идти после любой из предыдущих опций, которые появляются, и это должен быть один аргумент, поэтому вам нужно заключить его в кавычки, если у него есть пробелы.Для таких команд,
ping -c
которые быстро завершаются, вы можетеremain-on-exit
сначала установить опцию:Панель будет открыта после
ping
завершения, но будет помечена как «мертвая», пока вы не закроете ее вручную.Если вы не хотите менять общие параметры, есть другой подход. Команда запускается с
sh -c
, и вы можете использовать это, чтобы окно оставалось живым в конце:Здесь вы используете команду shell
read
для ожидания ввода новой строки после ввода основной команды. В этом случае вывод команды будет оставаться до тех пор, пока вы не нажмете Enterна панели, а затем автоматически закроется.источник
remain-on-exit
либо использоватьcmd ; read
.bash --rcfile
Этот метод открывает новую оболочку, запускает команды и оставляет вас там после выполнения команд:
Или, если команда не имеет специальных терминальных символов, таких как
;
просто:Это использует:
--rcfile
: Как вызвать bash, запустить команды внутри новой оболочки, а затем вернуть управление пользователю? | Переполнение стекаTMUX_PANE
: Как разделить окно, которое запускало команду "tmux split-window" вместо текущей?Еще один интересный вариант:
который убивает предыдущий сплит, если он уже существует, и помогает сохранить только один дополнительный сплит за все время.
источник