Mac 터미널에서 사용자 정의 프롬프트가 작동하지 않습니다


4

내 유닉스 컴퓨터에서 사용자 정의 프롬프트 (파란색의 현재 경로)를 사용하고 싶습니다.

export PS1='\[\e[0;34m\]\w \$\[\e[m\] '

그러나 Mac의 터미널에서 사용하려고하면 작동하지 않습니다. 프롬프트의 끝을 감지하지 못하고 명령을 입력 할 때 프롬프트를 덮어 씁니다. 이것은 새로운 줄을 시작하는 대신 같은 줄을 감싸는 긴 명령을 입력 할 때도 발생합니다.

두 컴퓨터에서 bash를 사용하기 때문에 이것이 왜 그런지 이해하지 못합니다. 이 문제를 해결하는 방법에 대한 제안 사항이 있습니까?

bash  prompt 

답변:


3

왜 다른 결과를 얻는 지 잘 모르겠지만 올바른 값은

export PS1='\[\e[0;34m\]\w \$\[\e[m\] '

인쇄하지 않는 문자는로 묶어야 \[ \]하므로 bash는 화면에서 올바른 길이의 프롬프트를 계산할 수 있습니다 (커서 위치 지정 목적으로).


예, 내보내기 PS1 = '[\ e [0; 34m] \ w \ $ [\ e [m]'는 내가 사용하고있는 값입니다. 나는 어떻게 든 내 질문에 그것을 잘못 복사했습니다. 위에서 설명한대로 작동하지 않습니다.

그것은 나를 위해 작동합니다.
Paul R

귀하의 코멘트에서 @mareks 위, 당신은 다시 이전의 백 슬래시를 누락하는 것 []그 색에 대한 ANSI 이스케이프 코드를 묶습니다. \[\e[아닙니다 [\e[.
chepner

2

이 작은 따옴표 대신 ""를 큰 따옴표로 묶어보십시오. 나를 위해 일했다. iTerm 및 Mac OS X 터미널에서도 작동합니다.


0

\[\e[[\e[코드 형식이 아닌 게시물에 게시 되었습니다 . 혼란에 대해 죄송합니다. 내 Mac에서 bash를 3.0에서 4.2로 업데이트하여 문제를 해결했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.