두 경우 모두 동일한 시각적 단서를 생성 PS1='\\ $ '
합니다 .PS1='\\\\ $ '
\ $
왜? 이것은 버그입니까, 아니면 문서화된 동작입니까?
bash 5.2.021 및 대시 0.5.12에서 테스트되었습니다. 나는 bash에서만 관찰했지만 대시에서는 관찰하지 않았습니다.
답변1
나쁜 잡기는 아닙니다. 이거 버그 같은데프롬프트 문자열 디코딩pars.y에서
PROMPTING 섹션에는 man bash
이것이 \\
백슬래시로 처리된다는 내용이 나와 있습니다. 따라서 \\\\
두 개의 백슬래시 문자로 처리되어야 하지만 어느 시점에서는프롬프트 문자열 디코딩백슬래시를 병합하는 다른 함수를 호출하여 두 개의 백슬래시 문자가 하나로 병합됩니다. 즉, 4개의 연속 백슬래시가 PS1
1로 병합됩니다(물론 코드의 논리가 동일하게 유지되는 한).
두 개의 연속 백슬래시를 인쇄하도록 프롬프트를 표시하려면 백슬래시( PS1='\\\\\\ $ '
또는 PS1='\\\\\\\\ $ '
)를 2~4개 더 추가해야 합니다.
다음 명령을 사용하여 잘못된 요청을 열 수 있습니다.bashbug
도구(Bash의 버그를 유지관리자에게 보고하는 유틸리티).