Bash 터미널이 텍스트를 올바르게 줄 바꿈하지 않습니다.

Bash 터미널이 텍스트를 올바르게 줄 바꿈하지 않습니다.

나는 gnome-terminalwith bash를 사용하고 있는데, 그 줄을 넘어야 하는 명령이 있을 때, 그것은 단지 같은 줄에 머물러 있습니다. 그래서 대신:

echo "abcdefghijklmnopqrstuvwxyz"

나는 얻을 것이다

opqrstuvwxyz""abcdefghijklmn

아니면 그와 비슷한 것. 그러나 Enter를 누르면 명령이 계속 작동합니다. 내 PS1 변수와 관련이 있다고 생각하지만 무엇이 문제인지는 알 수 없습니다. 여기있어:

export PS1='\e[1;35m[\u:\w]\$\e[0;35m '

답변1

이것은 다소 관련이 있는 것 같습니다.

Bash 매뉴얼 페이지 tput에서는 출력을 래핑하는 것을 권장합니다. \[ \]이는 Bash가 인쇄할 수 없는 문자를 무시하여 프롬프트의 크기를 올바르게 계산하는 데 도움이 됩니다.

원천.

귀하의 경우 " tput출력"은 다음과 같습니다. \e[1;35m, \e[0;35m(래핑할 두 개의 개별 조각이 있습니다). 그들은 다음 \033[1;35m과 같이 쓸 수도 있습니다 \033[0;35m. 일반적으로 인쇄할 수 없는 시퀀스를 래핑해야 합니다.

나는 당신을 수정했습니다 PS1:

export PS1='\[\e[1;35m\][\u:\w]\$\[\e[0;35m\] '

문제없이 작동하는 것 같습니다.

관련 정보