![Bash는 사용자 정의 PS1 프롬프트를 사용할 때 첫 번째 줄을 덮어씁니다.](https://linux55.com/image/69180/Bash%EB%8A%94%20%EC%82%AC%EC%9A%A9%EC%9E%90%20%EC%A0%95%EC%9D%98%20PS1%20%ED%94%84%EB%A1%AC%ED%94%84%ED%8A%B8%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%A0%20%EB%95%8C%20%EC%B2%AB%20%EB%B2%88%EC%A7%B8%20%EC%A4%84%EC%9D%84%20%EB%8D%AE%EC%96%B4%EC%94%81%EB%8B%88%EB%8B%A4..png)
내 문제는 비슷하지만 다릅니다.이 문제.
.bashrc
아래와 같이 사용자 정의 PS1을 만들었습니다 .
STARTCOLOR='\e[0;36m';
ENDCOLOR="\e[0m"
export PS1="\n$STARTCOLOR\u@\h:\! <\t> \w\n\$ $ENDCOLOR"
다음과 같습니다(물론 색상 포함).
tony@home:515 <17:04:52> ~/IdeaProjects/SomeProject
$ gedit ~/.bashrc
내 프로젝트를 원격 Git 저장소에 연결할 때 처음으로 이 문제를 발견했습니다. 나는 다음을 기대합니다 (물론 실제 저장소는 아닙니다).
$ git remote add origin https://[email protected]/tony/someproject.git
그러나 이것을 얻었습니다(내 PS1의 일부에도 적용됩니다):
project.gitte add origin https://[email protected]/tony/some
이렇게 시각적으로 이상하더라도 명령은 여전히 작동합니다.
너무 길어요.내 명령이 한 줄보다 길면 두 번째 줄이 첫 번째 줄을 덮어씁니다. 어떤 아이디어가 있나요?
답변1
\[
및 \]
(링크한 질문에 대한 답변에서 언급한 대로) 에 색상 이스케이프 시퀀스를 포함하여 인쇄할 수 없는 문자로 표시합니다.
이렇게 하면 bash
새 줄로 이동해야 하는 문자 수를 계산한 후 프롬프트 길이에 포함되지 않습니다.
STARTCOLOR='\e[0;36m'
ENDCOLOR="\e[0m"
export PS1="\n\[$STARTCOLOR\]\u@\h:\! <\t> \w\n\$ \[$ENDCOLOR\]"