
ANSI 이스케이프 시퀀스를 사용하여 bash 프롬프트의 일부를 색칠하고 있습니다. 현재 입력 중인 명령이 래핑해야 할 만큼 길어질 때까지는 이 방법이 훌륭하게 작동합니다. 다음 줄에 명령의 나머지 부분이 표시되는 대신 현재 줄의 열 1로 돌아가서 프롬프트의 시작 부분을 덮어씁니다.
다음 프롬프트에서 해당 동작을 얻습니다.
export PS1="[\u][\033[0;32;40mdemo \033[0;33;40m1.5.40.b\033[0;37;40m] \w> \033[0m"
하지만 동일한 프롬프트에서는 올바르게 작동합니다. ANSI 시퀀스는 다음을 제거합니다.
export PS1="[\u][demo 1.5.40.b] \w> "
기본 Putty 설정으로 현재 버전의 Putty를 사용하여 연결하고 있습니다. OS는 우분투 8.10이다.
답변1
거기에 뭔가가 있어야 합니다. 왜냐하면 다음 문자열이배쉬 문서동일한 동작을 나타내지 않습니다.
PS1="\[\033[1;34m\][\$(date +%H%M)][\u@\h:\w]$\[\033[0m\] "
아직 그것이 무엇인지 파악하지 못했지만, 그들의 작품과 당신의 작품은 그렇지 않습니다...
편집하다:노력하다:
PS1="[\u][\[\033[1;32m\]\[\033[1;40m\]demo \[\033[1;33m\]\[\033[1;40m\]1.5.40.b\[\033[0;37m\]] \w> \[\033[0m\] "