![PS1 또는 Bash 프롬프트 사용자 정의 문제 [중복]](https://linux55.com/image/192471/PS1%20%EB%98%90%EB%8A%94%20Bash%20%ED%94%84%EB%A1%AC%ED%94%84%ED%8A%B8%20%EC%82%AC%EC%9A%A9%EC%9E%90%20%EC%A0%95%EC%9D%98%20%EB%AC%B8%EC%A0%9C%20%5B%EC%A4%91%EB%B3%B5%5D.png)
저는 Linux Mint 20.1 Cinnamon을 사용하고 있는데 이번에는 상관없지만,
$
PS1 또는 일반적으로 마지막 문자(사용자) #
(루트) 의 색상을 지정 하는 Bash 프롬프트를 사용자 정의하는 데 문제가 있습니다 .
현재 PS1 코드는 다음 위치에 있습니다 .bashrc
.
if [ "$color_prompt" = yes ]; then
color_red=$(tput bold)$(tput setaf 1)
color_green=$(tput bold)$(tput setaf 2)
color_reset=$(tput sgr0)
PS1='${debian_chroot:+($debian_chroot)}\u @ \h $PWD $color_green\$$color_reset '
else
PS1='${debian_chroot:+($debian_chroot)}\u @ \h $PWD \$ '
fi
문제 설명:
터미널( )을 실행하면 gnome-terminal
괜찮아 보이지만 화살표 키를 사용하여 기록을 보면 약 10회 이상 지나면 텍스트가 깨집니다.
설명할 수 없는데 설명해주실 수 있나요? 내가 뭘 잘못했나요?
추신: 큰따옴표로 변경할 수 있다면 작은따옴표로 묶인 이유가 무엇인지 잘 모르겠습니다...
실패 #2
방금 큰따옴표 형식으로 "변환"을 시도했는데, 이로 인해 기록이 12번 이상 증가할 때 다시 문제가 발생했습니다.
PS1="\u @ \h \[\$PWD\] \[$(tput bold)\]\[$(tput setaf 2)\]\\$\[$(tput sgr0)\] "
실패 #3
이제 포기하기 시작했고 마지막 기회는 다음과 같이 이스케이프 시퀀스를 직접 사용하는 것입니다.
PS1='\u @ \h $PWD \e[1;32m\$ \e[0m'
이전에 설명한 대로 터미널이 왜곡되어 현재 색상 없이 작동하도록 설정되어 있습니다.
답변1
PS1='${debian_chroot:+($debian_chroot)}\u @ \h $PWD \[$color_green\]\$\[$color_reset\] '
바라보다내 대답. 인쇄할 수 없는 시퀀스를 래핑해야 합니다 \[
\]
. 그게 전부입니다. 인쇄된 조각(즉, 프롬프트에 추가된 길이)은 래핑되어서는 안 됩니다.
시도할 때 포장이 너무 적거나(아무것도 없음) 너무 많이 포장하고 있습니다( $PWD
).