여러 명령을 시작하는 tmux 스크립트


21

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.

답변:


21
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말에 명백한 않습니다.

수평 분할 (2 개의 창을 나란히)하려면, split-window -h위 명령에서 사용 하십시오.

여러 tmux명령을 보낼 때는로 명령 tmux을 구분해야합니다 ;. ;필요성은 (탈출 / 인용에 의해 쉘로부터 보호되도록 ';', ";"또는 \;의 끝으로 해석하는 쉘을 중지) tmux명령.

가독성을 위해 모든 것을 별도의 줄로 나눕니다. 스크립트에서이 작업을 수행하는 경우 (권장), \각 줄마다 마지막 에 아무것도 없는지 확인하십시오 .

함께 세션에 다시 연결 tmux a, tmux attach또는 tmux attach-session(이 모두 동일).

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


3

이것은 나를 위해 작동하지 않았습니다 ( '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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.