
tmux 세션이 실행 중인지 확인하기 위해 bash 기능을 개발 중입니다. 기능은 작동하지만 실행 중인 세션이 없으면 "서버에 연결할 수 없습니다"가 출력됩니다. 모든 함수 호출에 1>&2를 추가하지 않고 해당 오류를 null로 인쇄하려면 어떻게 해야 합니까?
tmux_checker()
{
if [ -z $(tmux ls | grep -o servercontrol) ]
then
tmux new -d -s servercontrol
fi
}
tmux_checker #> /dev/null 2>&1 or 1>&2
답변1
함수 자체의 출력을 리디렉션합니다.
tmux_checker()
{
if [ -z $(tmux ls 2>/dev/null | grep -o servercontrol) ]
then
tmux new -d -s servercontrol
fi
}
tmux_checker
답변2
기존 tmux
세션을 테스트하려면(또는 존재하지 않는 경우 백그라운드에서 새 세션을 시작하려면) 다음을 사용하십시오.
if ! tmux has-session 2>/dev/null; then
tmux new-session -d
fi
특정 이름의 세션을 확인하려면:
if ! tmux has-session -t name 2>/dev/null; then
tmux new-session -d -s name
fi
쉘 함수로서:
start_tmux () {
set -- "${1:-servercontrol}"
if ! tmux has-session -t "$1" 2>/dev/null; then
tmux new-session -d -s "$1"
fi
}
이것은 다음과 같이 사용될 수 있습니다.
$ start_tmux
또는
$ start_tmux mysession