SSH를 통해 서버에 로그인할 때마다 tmux 세션을 열고 싶습니다. 세션이 있으면 연결하고, 없으면 생성하여 연결합니다.
이 작업을 수행하려면 파일을 편집해야 한다고 생각 ~/.bashrc
하지만 bash 스크립트에서 if/else 문이나 다른 작업을 수행하는 방법을 모르겠습니다.
어떻게 해야 하나요?
답변1
tmux
tmux attach
자체적으로 이전 세션에 연결된 새 세션을 시작합니다 .
tmux attach
이전 세션이 없으면 실패합니다.
이 두 가지 사실을 결합하면 다음과 같은 해결책이 제공됩니다.
tmux attach || tmux
먼저 시도 tmux attach
하고 실패하면 tmux
자체적으로 실행됩니다. 그렇다면 이전 세션에 연결하고, 그렇지 않으면 새 세션을 시작하세요. 이것이 첫 번째 부분입니다.
두 번째 부분에서는 SSH를 통해 로그인할 때마다 이 코드를 실행하려고 합니다. 따라서 다음 사항을 확인해야 합니다.
- 로그인 쉘인지 여부. 이는 를 사용하여 수행할 수 있습니다
shopt -q login_shell
. - SSH를 통해 연결할지 여부입니다. 이는
$SSH_CLIENT
설정되어 있는지 확인하여 수행 할 수 있습니다 . 예:[ -n "$SSH_CLIENT" ]
.
따라서 이것을 끝에 추가해야 합니다 .bashrc
.
if shopt -q login_shell && [ -n "$SSH_CLIENT" ]; then
tmux attach || tmux
fi