여러 tmux 자동 스크립트를 시작하는 방법은 무엇입니까?

여러 tmux 자동 스크립트를 시작하는 방법은 무엇입니까?

다음은 고유한 Tmux 세션을 시작할 수 있는 TmuxHome.sh 스크립트입니다.

# tmux Start Script Need To Work!!
if which tmux >/dev/null 2>&1; then
    #if not inside a tmux session, and if no session is started, start a new session
    test -z "$TMUX" && (tmux attach || tmux new-session)
fi

좋아, 이제 기본 .tmux.conf를 사용하는 TmuxHome.sh와 tmux-work.conf를 사용하는 TmuxWork.sh의 예를 제공하고 싶습니다. 둘 다 활성화되어 별도의 세션에서 실행됩니다. 아무 문제 없이 이 작업을 수행하는 방법은 무엇입니까? 어쩌면 다음 TmuxTty.sh 또는 TmuxDev.sh 등...

Arch 위키 사이트는 훌륭합니다: https://wiki.archlinux.org/index.php/Tmux 지금은 예전과 달라요

답변1

tmux두 호출 모두에 적절한 매개변수를 간단히 전달할 수 있습니다 .

  • tmux매개변수를 사용하여 사용자 정의 구성 파일을 자체적 -f으로 전달합니다 tmux.
  • 의 경우 new-session매개변수를 사용하여 세션 이름을 전달해야 합니다 -s.
  • 의 경우 ("t"는 "target"을 나타냄)을 통해 세션 이름을 전달할 수 있습니다 attach.-t

함께 넣어보세요:

# TmuxWork.sh
if which tmux >/dev/null 2>&1; then
    #if not inside a tmux session, and if no session is started, start a new session
    test -z "$TMUX" && (
        tmux -f ~/.tmux-work.conf attach -t work ||
        tmux -f ~/.tmux-work.conf new-session -s work
    )
fi

new-session( 대부분의 경우 attach세션 내에서 실행되는 것과 같은 다른 명령에는 중요하지 않으므로 구성 파일만 전달하면 됩니다 .)

실제로 이 스크립트를 확장할 수 있습니다.변화"home" 세션이나 다른 세션 내에서 실행하는 경우 switch-client"work" 세션에 다음 명령을 사용합니다.

if test -n "$TMUX" ; then
    tmux switch-client -t work
else
    tmux attach -t work ||
    tmux -f ~/.tmux-work.conf new-session -s work
fi

일부 스크립팅을 사용하면 세션 이름(이 경우 "작업")과 사용자 정의 프로필 이름을 셸 변수에 저장하고 이 코드 조각을 재사용하여 관리하려는 세션 수만큼 사용자 정의 스크립트를 제공할 수 있습니다. .

관련 정보