tput sgr0 명령은 터미널 글꼴과 텍스트 색상을 변경합니다. 이를 어떻게 중지합니까? tput sgr0 이후의 모든 에코 출력은 굵은 흰색입니다.

tput sgr0 명령은 터미널 글꼴과 텍스트 색상을 변경합니다. 이를 어떻게 중지합니까? tput sgr0 이후의 모든 에코 출력은 굵은 흰색입니다.

이렇게 하면 tput sgr0터미널 글꼴과 색상이 흰색(검은색이어야 함)으로 바뀌고 뭉툭해 보입니다.

스크린샷을 참조하세요:

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

어떻게 하면 이것을 멈출 수 있나요?

더 간결하게 말하자면, 이 echo이후의 내용 tput sgr 0은 굵은 흰색으로 출력되는 것으로 보이며 터미널 텍스트 색상은 검정색입니다.

고쳐 쓰다:

내 거 ~.bashrc:

export LC_ALL="en_GB.UTF-8"
export BASH_SILENCE_DEPRECATION_WARNING=1

branch() {
  git branch 2> /dev/null | \ 
  grep \*                 | \ 
  awk '{print$2}'         | \ 
  sed '
    s#^#(#g;
    s#$#)#g
  '
 }

colo() { tput setaf $1; }


PS1='`tput bold``colo 5`\W: `tput sgr0``colo 0``branch``colo 0` \n λ '

답변1

코드 sgr0man terminfo"모든 속성을 끄세요".

코드 sgr는 "비디오 속성 #1-#9 정의(PG9)" 값을 취하고 1.. 9; 시퀀스 sgr 0는 정의되지 않았습니다. 질문에 및 를 모두 사용했습니다 sgr0.sgr 0

나머지 대답은 sgr0다른 시퀀스가 ​​유효하지 않기 때문에 가정됩니다.


tput sgr0터미널을 흑백으로 재설정을 사용하는 경우 이러한 색상은 기본(재설정) 모드의 일부입니다. 따라서 선호하는 색 구성표를 기본값으로 사용하도록 터미널 응용 프로그램을 구성하는 대신 특정 전경색과 배경색을 설정하는 지침을 쉘 초기화 파일 중 하나에 넣는다고 가정합니다. 이는 sgr0코드에 의해 (올바르게) 재설정됩니다.

두 가지 가능한 해결책을 생각했는데,

  1. 기본 재설정 값이 되도록 셸 구성 파일에서 설정하는 대신 원하는 색상을 사용하도록 터미널 응용 프로그램을 직접 구성합니다.
  2. 인쇄할 때마다 선호하는 전경 및 배경 속성을 설정하려면 쉘 프롬프트 명령을 수정하세요.

관련 정보