Odpowiedzi:
tmux \
new-session 'compass watch /path/to/project1/compass/' \; \
split-window 'compass watch /path/to/project2/compass/' \; \
detach-client
new-sessionKomenda (która tworzy nową tmuxsesję) i split-windowkomenda (która dzieli bieżącego okna na dwa panele) w tmuxtrwa opcjonalnych poleceń powłoki do uruchomienia. detach-clientRobi to oczywiste na końcu.
Jeśli chcesz podzielić poziomo (dwa panele obok siebie), użyj split-window -hpowyższego polecenia.
Wysyłając wiele tmuxpoleceń tmux, musisz je rozdzielić ;. W ;musi być chroniony od zbiornika przytoczyć / ucieczki (to ';', ";"czy \;), aby przerwać powłokę interpretacji jako koniec tmuxpolecenia.
Podzieliłem to wszystko na osobne linie dla czytelności. Jeśli robisz to w skrypcie (który polecam), upewnij się, że po finale \w każdym wierszu nie ma nic .
Dołącz ponownie do sesji za pomocą tmux a, tmux attachlub tmux attach-session(wszystkie są równoważne).
tmuxSesja zakończy raz oba polecenia zakończeniu wykonywania.
Nie działało to dla mnie (próbowałem zrobić coś takiego jak „ls -la”). Co to było:
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
To pozwoliło mi uruchomić dość ogólne rzeczy i chociaż wygląda brzydko, jest całkiem funkcjonalne.
Zostawiam to tutaj, na wypadek, gdyby inni szukali tego samego.