.bashrc를 편집한 후 프롬프트에 Ghost가 나타납니다.

.bashrc를 편집한 후 프롬프트에 Ghost가 나타납니다.

내 항목에 다음을 추가했습니다 ~/.bashrc.

export PS1="\e[0;35m[\u@\h \W]\$ \e[m "
echo -e "\e[0;35mYOU ARE ON THE LIVE SERVER !!\e[0m"

안타깝게도 이제 bash에 긴 내용을 붙여넣을 때마다 화면이 축축해지고 유령 tab문자가 화면에 나타나며 줄이 서로 잡아먹히는데, 이유를 아는 사람이 있습니까?

답변1

과거에는 ANSI 색상 코드가 명령줄 탐색과 혼동되는 문제가 있었습니다. \[ \]명령 셸이 입력 문자열의 일부로 이를 고려하는 방법(또는 고려하지 않는 방법)을 알 수 있도록 ANSI 코드를 배치해야 합니다.

좋다:

export PS1="\[\e[0;35m\][\u@\h \W]\$\[\e[m\] "
echo -e "\[\e[0;35m\]YOU ARE ON THE LIVE SERVER !!\[\e[0m\]"

쉘이 필요한 이유에 대한 \[설명 \]: 터미널의 문자 매트릭스의 올바른 위치에 프롬프트를 그리려면 쉘은 프롬프트 문자열의 올바른 길이, 즉 프롬프트 문자열의 길이를 알아야 합니다.인쇄 가능즉, 제어 문자나 문자 시퀀스가 ​​아닙니다.

그러나 쉘은 터미널이 인쇄 가능하다고 간주하는 문자 시퀀스를 알지 못합니다. 따라서 인쇄 가능한 시퀀스와 인쇄할 수 없는 시퀀스를 구별하기 위해 셸에 힌트를 제공해야 합니다. 이것이 \[및 의 목적 입니다 \].

답변2

이 문제를 해결했습니다. 이 웹사이트를 사용했습니다.http://bashrcgenerator.com/수동으로 수행하려면 시간이 더 걸리지만 요소를 두 번 클릭하면 색상을 지정할 수 있으며 작동합니다.

나는 결국 얻는다

   export PS1="\[\033[38;5;129m\][\u@\h\[$(tput sgr0)\]\[\033[38;5;15m\] \[$(tput sgr0)\]\[\033[38;5;129m\]~]\\$\[$(tput sgr0)\]\[\033[38;5;15m\] \[$(tput sgr0)\]"

관련 정보