설치 중인 tmux 프로그램에 따라 .bashrc 호출을 어떻게 만들 수 있나요?

설치 중인 tmux 프로그램에 따라 .bashrc 호출을 어떻게 만들 수 있나요?

.bashrc에 tmux 프로그램(터미널 멀티플렉서)을 시작하는 섹션이 있습니다.

그러나 tmux 프로그램이 설치되지 않은 경우(새 컴퓨터를 설정한다고 가정) 이를 .bashrc 파일에 넣으면 터미널 창이 성공적으로 열리지 않습니다.

물론 tmux를 설치하면 이 문제가 해결될 수 있지만 그것은 내 문제는 아니다.

tmux가아니요설치 후 충돌이 발생하지 않거나 오류 메시지가 표시됩니까?

현재 나는 다음을 가지고 있습니다:

if [[ ! $TERM =~ screen ]]; then
  exec tmux
fi

나는 다음과 같은 것을 원합니다 :

if tmux; then
  if [[ ! $TERM =~ screen ]]; then
    exec tmux
  fi
fi

하지만 이것은 나에게 준다

The program 'tmux' is currently not installed.  You can install it by typing:
sudo apt-get install tmux

적어도 창을 닫는 대신 터미널 프롬프트가 표시되지만! 또한 tmux가 설치된 경우 새 터미널 창을 열어도 오류가 발생하지 않거나 문제가 발생하지 않습니다.

답변1

다음 명령을 사용하여 type컴퓨터에 실행 파일이 있는지 확인할 수 있습니다.

if [ -n "$(type -P tmux)" ]; then

    ...tmux is installed...

else

    ...tmux isn't installed...

fi

나는 종종 다음 코드 조각을 사용하여 이를 수행합니다.

$ [ -n $(type -P tmux) ] && echo "installed" || echo "not installed"
installed

-n(비어 있지 않은 문자열), (빈 문자열) -z의 대안을 사용하여 가짜로 만들 수 있습니다.

$ [ -z $(type -P tmux) ] && echo "installed" || echo "not installed"
not installed

답변2

또는 시작할 실행 파일을 결정하려는 경우 다음을 수행할 수 있습니다.

executable=$(type -P tmux)
executable=${executable:-xterm} # For example
exec $executable

확장 프로그램은 이전에 아무 것도 할당되지 않은 경우에만 var=${var:-string}"string" 값을 할당합니다 .varvar

관련 정보