Bash 스크립트의 색상 코드 주위에 \[\]를 포함하지 않으면 언제/무엇이 깨질 수 있나요? [복사]

Bash 스크립트의 색상 코드 주위에 \[\]를 포함하지 않으면 언제/무엇이 깨질 수 있나요? [복사]

나는 색상 코드를 가지고 놀면서 그것이 bash 스크립트에서 어떻게 사용되는지 이해하려고 노력했고, 다음과 같이 \[\] 주위에 없어도 잘 작동한다는 것을 발견했습니다.

이것..

red="\033[38;5;203m"
export PS1="$red\u$green\$(__git_ps1)$blue \W"

..동일한 결과를 제공합니다.

red="\[\033[38;5;203m\]"
export PS1="$red\u$green\$(__git_ps1)$blue \W"

그렇다면 두 번째 형식이 필요한가요?

답변1

프롬프트 \[에 ... 로 묶이지 않은 인쇄할 수 없는 문자가 포함되어 있으면 \]쉘은 프롬프트의 너비를 잘못 계산합니다. 결과적으로 커서 위치가 혼란스러워지고 디스플레이가 잘못 업데이트됩니다. 일반적인 예는 길이가 창 너비를 초과할 정도로 긴 명령을 입력하여 다음 줄로 넘어가고 백스페이스를 사용하여 첫 번째 줄로 돌아가는 경우입니다.

관련 정보