터미널의 프롬프트를 색칠하는 동안 성가신 버그를 발견했습니다. 즉터미널에서 색상을 설정하면 이상한 문자 행 제한이 발생합니다.
, 때 내 라인 : 내가 입력 라인의 일부 크기를 얻을 때 휴식
export PS1='\e[1;34m[\e[0;31m\D{%Hh%M} \e[0;32m\u\e[[email protected]\e[0;35m\h\e[0m:\e[0;36m\w\e[1;34m]\e[0m $ '
다음 시작
같은 색깔 하나에 내 프롬프트를 설정 한 경우 어떤 한계에 도달하면, 그 자체가 시작됩니다! 다시 같은 줄을 채우면 다음 줄로 가면서 잘 동작합니다.이 문제를 본 사람이 있습니까? 해결책이 있습니까? 문제는 iTerm에서도 발생합니다.
귀하의 구문은 흉포합니다. 요약하자면, $() 앞에 모든 것을 닫을 수있는 괄호가 없습니다. 다른 문제가 있습니다. 다시 시작하는 것이 좋습니다. 다음은 색상 화에 대한 안내입니다. http://www.ibm.com/developerworks/linux/library/l-tip-prompt/ –
사이드 노트 : 프롬프트를 사용자 정의 할 때 리터럴 달러 기호 대신'\ $ '를 사용하십시오. Bash는 적절한 프롬프트 문자를 표시합니다 (일반 사용자는'$', 루트 사용자는'#'). –
또 다른 스타일 팁 : 하드 코딩 이스케이프 시퀀스를 사용하지 마십시오 (대부분의 사람들이 잘 알고 있지만 그렇게해서는 안됩니다). 대신'tput '을 사용하여 현재 터미널에 적합한 코드를 내 보내어 다양한 터미널에서 적절히 작동하게하십시오. 특히 터미널을 혼동시킬 수있는 문자를 출력하는 대신 터미널이 프롬프트의 색상/스타일을 지원하지 않으면 아무 것도 출력하지 않습니다. 예를 들어'PS1 = "\ [$ (tput setaf 1) \] \ h : \ W \ [$ (tput sgr0) \] \ u \ $" "는 호스트 이름과 작업 디렉토리를 빨간색으로 표시합니다. –