문자로 인해 종료되는 터미널 프롬프트를 어떻게 수정합니까? [복사]

문자로 인해 종료되는 터미널 프롬프트를 어떻게 수정합니까? [복사]

내 터미널 프롬프트는 파일의 다음 구성을 사용하여 설정됩니다 .profile.

# Prompt
GREEN=$(tput setaf 2)
LIME_YELLOW=$(tput setaf 190)
MAGENTA=$(tput setaf 5)
WHITE=$(tput setaf 7)
NORMAL=$(tput sgr0)
PS1="\[${WHITE}${MAGENTA}\]\u\[${WHITE}@${GREEN}\]\h \[${LIME_YELLOW}\]\W \[${WHITE}${NORMAL}\]$ "

일반적으로 잘 작동하지만 때로는 하나씩 오류가 발생합니다. 몇 가지 명령을 실행한 다음 up키를 사용하여 기록에 액세스하면 일부 문자가 깨져 보이는 것처럼 보입니다. 예를 들어:

matt@laptop ~ $ git log

~이 되다

matt@laptop ~ $ gitlog

또는:

matt@laptop ~ $ ssh desktop

~이 되다

matt@laptop ~ $ssh desktop

잘못 표시된 명령은 정상적으로 실행되고 기록에 정상적으로 나타납니다.

답변1

\[태그는 \]색상을 설정하는 제어 시퀀스와 같이 화면에 표시될 때 너비가 0인 텍스트를 둘러싸는 데 사용됩니다. 다른 일반 텍스트는 @태그 외부에 있어야 합니다.

그래서 대신

PS1="\[${WHITE}${MAGENTA}\]\u\[${WHITE}@${GREEN}\]\h \[${LIME_YELLOW}\]\W \[${WHITE}${NORMAL}\]$ "

이것을 사용

PS1="\[${WHITE}${MAGENTA}\]\u\[${WHITE}\]@\[${GREEN}\]\h \[${LIME_YELLOW}\]\W \[${WHITE}${NORMAL}\]$ "

더 많은 정보를 원하시면 방문해주세요배쉬 FAQ 053.

관련 정보