디버그 트랩의 터미널 제목 업데이트로 인해 색상이 손상됨

디버그 트랩의 터미널 제목 업데이트로 인해 색상이 손상됨

터미널 제목은 다음 구문을 사용하여 업데이트할 수 있습니다.

echo -ne "\033]0;TITLE\a"

또 어디로 \a갈 수 있나요 \007? (프로세스 시작 시) 창 제목을 동적으로 업데이트하기 위해 다음을 내 .bashrc(에서 영감을 얻었 습니다)이 답변,간단화):

MY_TRAP_DEBUG() {
    echo -ne "\033]0; ${BASH_COMMAND} \a"
}
trap MY_TRAP_DEBUG DEBUG

잘 작동합니다. 그러나 이제 컬러 출력을 인쇄하려면 다음을 수행하십시오.

echo -e "\033[0;33m SOME YELLOW TEXT"

, 출력에는 명령이 포함되어 있으며 결과는 ASCII 샐러드입니다. 아래 스크린샷을 참조하세요.

여기에 이미지 설명을 입력하세요.

  1. 왜?
  2. 어떻게 해결할 수 있나요?

답변1

다음은 두 가지 질문입니다.

  • 왜?

    이스케이프 시퀀스는둥지. 타이틀 시퀀스는 다음으로 시작 \033]0;하고 다음으로 끝납니다.\a 또는 다른 제어 시퀀스.

  • 이 문제를 어떻게 해결합니까?

    당신은 할 수소독하다bash 명령을 사용하여 이를 변수에 할당하고 쉘 매개변수 대체를 사용하여 이스케이프 문자(및 \aASCII BEL)를 제거합니다. 보기 좋게 만들려면 대괄호(또는[또는]) 이스케이프 문자 뒤에, 그리고 가능한 후속 숫자 인수 뒤에.

BASH_REMATCH누군가 그것을 사용 하고 (정규식 일치의 부작용으로 설정) 다음과 같이 사용하는 예를 제공할 수 있습니까?단어대체 해서 ${parameter##word}...

관련 정보