Ответы:
tmux \
new-session 'compass watch /path/to/project1/compass/' \; \
split-window 'compass watch /path/to/project2/compass/' \; \
detach-client
Команда new-session(которая создает новый tmuxсеанс) и split-windowкоманда (которая разбивает текущее окно на две панели) tmuxпринимают дополнительные команды оболочки для запуска. The detach-clientделает очевидное в конце.
Если вы хотите горизонтальное разделение (две панели рядом), используйте split-window -hкоманду выше.
При отправке нескольких tmuxкоманд tmuxвам необходимо разделить их на ;. Эти ;потребности должны быть защищены от оболочки процитировать / избежать его ( ';', ";"или \;), чтобы остановить оболочку интерпретировать его как конец tmuxкоманды.
Я разбил все это на отдельные строки для удобства чтения. Если вы делаете это в скрипте (который я рекомендую), убедитесь, что после финала \в каждой строке ничего нет .
Присоедините к сеансу с помощью tmux a, tmux attachили tmux attach-session(все они эквивалентны).
tmuxСессии закончится , как только обе команды закончили выполнение.
Это не сработало для меня (я пытался сделать что-то вроде 'ls -la'). Что было:
tmux new-session -d bash
tmux split-window -h bash
#sends keys to first and second terminals
tmux send -t 0:0.0 "<my-first-command>" C-m
tmux send -t 0:0.1 "<my-second-command>" C-m
tmux -2 attach-session -d
Это позволило мне запускать довольно общие вещи, и хотя это выглядит некрасиво, это довольно функционально.
Просто оставьте это здесь на случай, если другие люди ищут то же самое.
Источник: https://gist.github.com/kizzx2/4739236