tmux는 더 이상 .bashrc에 정의되지 않은 변수를 계속 사용합니다.

tmux는 더 이상 .bashrc에 정의되지 않은 변수를 계속 사용합니다.

.bashrc너무 부풀어 오르고 콘솔을 시작하는 데 시간이 오래 걸리기 때문에 재설정하려고 합니다 .

이를 위해 다음을 수행했습니다.

cp /etc/skel/.bashrc ~/.bashrc

이는 일반 로그인 bash 쉘에서 작동합니다.

하지만 터미널 멀티플렉싱에도 TMUX를 사용하고 있는데 이전에 정의한 환경 변수(더 이상 존재하지 않음)를 업데이트/제거하지 않는 것 같습니다. 예를 들면 다음과 같습니다.

Git 정보를 출력하기 위해 PS1을 재정의했습니다. 내 이전 정의는 .bashrc다음과 같습니다.

function parse_git_branch {
git branch --no-color 2> /dev/null | sed -e '/^[^*]/d' -e "s/* \(.*\)/[\1$(parse_git_dirty)]/"
}
export PS1='\u@\h \[\033[1;33m\]\W\[\033[0m\] \[\e[91m\]$(parse_git_branch)\[\e[00m\]$ '

이제 더 이상 TMUX에 정의되어 있지 않으므로 .bashrc각 명령을 실행한 후(프롬프트가 인쇄될 때) 다음 오류가 발생합니다.

-bash: parse_git_branch: command not found

다음을 사용하여 새 TMUX 세션을 시작할 때 이런 일이 발생합니다.

tmux new -s TEST

TMUX 외부에서는 모든 것이 예상대로 작동합니다.

TMUX를 별도로 재설정해야 하나요? 완전히 막혔으니 디버깅하려면 어떻게 해야 하나요? !

편집하다:

  1. .bashrc.
  2. $PS1무언가가 "이상하다"는 "증거"로서 TMUX 내부 및 외부의 값은 다음과 같습니다 .

TMUX 내부:

$ echo $PS1
\u@\h \[\e[32m\]\W \[\e[91m\]$(parse_git_branch)\[\e[00m\]$
-bash: parse_git_branch: command not found

외부 TMUX:

$ echo $PS1
[\u@\h \W]\$

관련 정보