![Bash 스크립트의 색상 코드 주위에 \[\]를 포함하지 않으면 언제/무엇이 깨질 수 있나요? [복사]](https://linux55.com/image/156849/Bash%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EC%9D%98%20%EC%83%89%EC%83%81%20%EC%BD%94%EB%93%9C%20%EC%A3%BC%EC%9C%84%EC%97%90%20%5C%5B%5C%5D%EB%A5%BC%20%ED%8F%AC%ED%95%A8%ED%95%98%EC%A7%80%20%EC%95%8A%EC%9C%BC%EB%A9%B4%20%EC%96%B8%EC%A0%9C%2F%EB%AC%B4%EC%97%87%EC%9D%B4%20%EA%B9%A8%EC%A7%88%20%EC%88%98%20%EC%9E%88%EB%82%98%EC%9A%94%3F%20%5B%EB%B3%B5%EC%82%AC%5D.png)
나는 색상 코드를 가지고 놀면서 그것이 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
프롬프트 \[
에 ... 로 묶이지 않은 인쇄할 수 없는 문자가 포함되어 있으면 \]
쉘은 프롬프트의 너비를 잘못 계산합니다. 결과적으로 커서 위치가 혼란스러워지고 디스플레이가 잘못 업데이트됩니다. 일반적인 예는 길이가 창 너비를 초과할 정도로 긴 명령을 입력하여 다음 줄로 넘어가고 백스페이스를 사용하여 첫 번째 줄로 돌아가는 경우입니다.