Bash Prompt의 색상 프롬프트를 엉망으로 만드는


5

내 bashrc 파일에는 다음과 같이 프롬프트가 설정되어 있습니다.

  TC_GRE="^[[0;32;40m"                                                          
  TC_RESET="^[[0m"                                                              
  PS1="${TC_GRE}i:${TC_RESET}"  

따라서 프롬프트는 단순히 녹색 "i :"입니다. 쉘에서 작업하고 히스토리에서 위로 스크롤하면 명령 행이 엉망이됩니다. 다음을 고려하세요:

i: shell_command_one
i: shell_command_two
i: shell_command_three

이제 내 역사에 올라갈 때 줄은 다음과 같이 보일 수 있습니다.

i: shell_comshell_command_two

Enter 키를 누르면 shell_command_two가 실행됩니다. (shell_com이 터미널에서 어떻게 정크 문자인지 알 수 있습니다.

인쇄되지 않는 컬러 문자와 관련이있을 수 있습니다. bash 에서이 문제를 해결하는 방법을 아는 사람이 있습니까?

추신 : 이것이 슈퍼 유저에게 더 잘 게시되는지 확실하지 않지만 bash 스크립팅에 관한 것이므로 여기에서 가장 좋을 것이라고 생각했습니다.

답변:


3

잘못된 CSI 색상 코드가있는 것 같습니다 . .bashrc파일 에서 이것을 시도 하십시오 :

TC_GRE="\[\033[0;32m\]"                                                          
PS1="${TC_GRE}i: "  

작은 수정으로 작업했습니다 ... TC_GRE = "[\ 033 [0; 32; 40m]"TC_RESET = "[\ 033 [0; 0m]"PS1 = "$ {TC_GRE} i : $ {TC_RESET}"난 여전히 전경색을 재설정하여 항상 녹색이 아니 었습니다. 감사!

3
인쇄 할 때 커서를 움직이지 않는 문자를 프롬프트에 삽입 할 때 잘못된 색상 코드는 아닙니다. 이 \[...\]쌍은 해당 문자를 감싸서 bash프롬프트가 화면에서 차지하는 공간의 양에 혼란 을 주지 않습니다.
chepner
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.