Bash 색상 및 긴 줄에 대한 도움말

Bash 색상 및 긴 줄에 대한 도움말

긴 명령을 작성하고 텍스트 줄이 터미널 끝에 도달하면 같은 줄의 시작 부분에서 계속되고(예: "덮어쓰기") 클릭해도 home실제로는 터미널의 시작 부분에 도달하지 않습니다 . 선.

찾았어요이 문제,이 다른잠깐만요, 이제 색상과 보여주고 싶은 내용과 관련이 생겼네요... 다른 글을 올리게 되어 죄송하지만 제가 직접 선을 편집해 보았으나 정말 이해가 되지 않습니다. 저 좀 도와주실 수 있나요?

내 발췌문은 다음과 같습니다 .bashrc.

if [ "$color_prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\][\u@debian]\[\033[01;34m\][\033[01;34m\]\w\]]\033[01;34m\]\$\033[00m\] '

이를 명확히 하기 위해 프롬프트는 다음과 같습니다.

[username@debian][~]$

  • 의미는 괄호 안의 사용자 이름@debian [\u@debian], 녹색 입니다.

*예, 평소보다 "debian"이라고 말하고 싶습니다.\h

  • 작업 디렉토리도 대괄호 사이에 있으며 [\w]파란색으로 표시됩니다.
  • $일반 사용자의 경우
  • 내가 입력한 텍스트가 흰색으로 나타납니다.
  • 나는 루트 프롬프트에 관심이 없습니다.

도와주셔서 감사하고 또 다른 글을 올려서 죄송합니다...


편집: 천천히 읽은 후 다시 작성해 보았습니다.이 완전한 튜토리얼. 하지만 제대로 작동하지 못했습니다. 이제 첫 번째 줄을 "덮어쓰지" 않지만 두 번째 줄에서는 몇 문자 뒤에 두 번째 줄을 몇 문자만 덮고 정상적으로 계속됩니다. 하지만 이 새로운 PS1에서는 UP키보드의 화살표를 눌러 이전 명령으로 이동하면 정말 이상해집니다.

PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\[[\]\u\[@debian]\]\[\033[01;34m\]\[[\]\w\[]\]\[\033[01;34m\]\$\[\033[00m\] '

튜토리얼을 올바르게 기억한다면 다음과 같아야 합니다.

  • \[인쇄되지 않는 문자의 시퀀스를 시작합니다.
  • \]인쇄되지 않는 문자 시퀀스를 종료합니다.
  • \033[XXm색상은 인쇄되지 않는 문자의 시작과 끝 사이에 있어야 합니다. 예를 들어 blue(34)의 경우 다음과 같습니다.\[\033[34m\]

그래서 지금은 작동해야 할 것 같지만 그렇지 않습니다. 물론 제가 제대로 읽은 것은 아닙니다 -.-

답변1

여기에 오타가 있는 것 같습니다.

\[\033[01;34m\][\033[01;34m\]
               ^

[이것은 \[.

\[...mark는 \]문자열의 이러한 부분이 열 수에 영향을 미치지 않음을 Bash에 알려줍니다.

관련 정보