tmux 스크립트는 여러 명령을 시작합니다

tmux 스크립트는 여러 명령을 시작합니다

Bash 스크립트에 다음을 어떻게 작성할 수 있습니까?

tmux # Start tmux session.
compass watch /path/to/project1/compass/ # Run the first process.
Ctrl + B, " # Split the pane.
compass watch /path/to/project2/compass/ # Run the second process.
Ctrl + B, D # Exit the session.

답변1

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은 선택적 셸 명령을 사용하여 실행됩니다. detach-client최종 효과는 분명합니다.

수평 분할(두 개의 나란히 있는 창)을 원하면 split-window -h위 명령을 사용하세요.

여러 tmux명령을 보낼 때는 tmux구분하여 보내야 합니다 ;. 쉘이 이를 명령의 끝으로 해석하지 못하도록 하려면 인용/이스케이프 처리( , 또는 )하여 ;쉘로부터 보호 해야 합니다.';'";"\;tmux

가독성을 위해 전체 내용을 별도의 줄로 구분했습니다. 스크립트에서 이 작업을 수행하는 경우(권장함) 각 줄의 마지막 줄 뒤에 아무것도 없는지 확인하세요 \.

tmux atmux attach세션을 사용 하거나 다시 연결합니다 tmux attach-session(동등함).

tmux두 명령이 모두 실행되면 세션이 종료됩니다.

답변2

이것은 나에게는 작동하지 않습니다(나는 "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

답변3

종료하지 않고 짧은 명령을 실행하려면 다음을 수행하십시오.

tmux \
    new-session  'ls ; bash' \; \
    split-window 'ls ; bash' 

또는

tmux \
    new-session  'ls ; bash' \; \
    new-window   'ls ; bash' 

관련 정보