bash 프롬프트는 줄의 시작 부분으로 줄 바꿈됩니다.

bash 프롬프트는 줄의 시작 부분으로 줄 바꿈됩니다.

내 ~/.bashrc 파일에 있는 Debian 10의 PS1 프롬프트에 색상과 시간을 추가하려고 합니다. 처음에는 올바른 것처럼 보이지만 한 줄에 약 40자 이상을 입력하면 커서가 줄의 시작 부분(프롬프트 자체의 첫 번째 문자)으로 이동하고 거기서부터 계속 입력합니다. 뭔가 올바르게 이스케이프되지 않은 것 같은데 그게 뭔지 알 수 없습니다.

SH_OFF='\[\033[00m\]'

SH_BLACK='\[\033[1;30m\]'
SH_BLUE='\[\033[1;34m\]'
SH_GREEN='\[\033[1;32m\]'
SH_CYAN='\[\033[1;36m\]'
SH_RED='\[\033[1;31m\]'
SH_PURPLE='\[\033[1;35m\]'
SH_BROWN='\[\033[1;33m\]'
SH_YELLOW='\[\033[1;33m\]'

PS1="${debian_chroot:+($debian_chroot)}$SH_GREEN\u@\h \t$SH_OFF $SH_YELLOW\w$SH_OFF \$ "

답변1

네, 큰따옴표를 사용해야 할 것 같습니다. 이 문제가 해결된 것 같습니다.

SH_OFF="\[\033[00m\]"

SH_BLACK="\[\033[1;30m\]"
SH_BLUE="\[\033[1;34m\]"
SH_GREEN="\[\033[1;32m\]"
SH_CYAN="\[\033[1;36m\]"
SH_RED="\[\033[1;31m\]"
SH_PURPLE="\[\033[1;35m\]"
SH_BROWN="\[\033[1;33m\]"
SH_YELLOW="\[\033[1;33m\]"

관련 정보