이 내 꺼야 ~/.bashrc
:
# ...unnecessary lines skipped...
# man colors
LESS_TERMCAP_mb=$(tput blink) # start bold
LESS_TERMCAP_md=$(tput setaf 2 ; tput bold) # start bold
LESS_TERMCAP_me=$(tput sgr0) # turn off bold, blink and underline
LESS_TERMCAP_so=$(tput smso) # start standout (reverse video)
LESS_TERMCAP_se=$(tput rmso) # stop standout
LESS_TERMCAP_us=$(tput smul) # start underline
LESS_TERMCAP_ue=$(tput rmul) # stop underline
export LESS_TERMCAP_mb
export LESS_TERMCAP_md
export LESS_TERMCAP_me
export LESS_TERMCAP_so
export LESS_TERMCAP_se
export LESS_TERMCAP_us
export LESS_TERMCAP_ue
이것은 작동하며 매뉴얼 페이지에서 색상을 볼 수 있습니다. 그러나 행을 에서 으로 이동하고 다시 로그인하면 ~/.bashrc
매뉴얼 ~/.profile
페이지의 색상이 사라집니다.
tput
여러 제어 기호보다 깔끔하기 때문에 사용하고 싶은 유혹이 듭니다 .
왜 tput
더 이상 작동하지 않습니까 .profile
?
답변1
tput
$TERM
환경 변수에서 현재 터미널 에뮬레이터를 알아야 하기 때문에 작동하지 않습니다 . 읽을 때 ~\.profile
터미널 에뮬레이터가 사용되지 않으므로 tput
출력이 생성되지 않습니다.
tput
키를 통해 -T
사용할 터미널 기능을 지정할 수 있습니다 . 따라서 다음 코드가 작동합니다.
LESS_TERMCAP_mb=$(tput -T ansi blink) # start bold
LESS_TERMCAP_md=$(tput -T ansi setaf 2 ; tput -T ansi bold) # start bold
LESS_TERMCAP_me=$(tput -T ansi sgr0) # turn off bold, blink and underline
LESS_TERMCAP_so=$(tput -T ansi smso) # start standout (reverse video)
LESS_TERMCAP_se=$(tput -T ansi rmso) # stop standout
LESS_TERMCAP_us=$(tput -T ansi smul) # start underline
LESS_TERMCAP_ue=$(tput -T ansi rmul) # stop underline
export LESS_TERMCAP_mb
export LESS_TERMCAP_md
export LESS_TERMCAP_me
export LESS_TERMCAP_se
export LESS_TERMCAP_so
export LESS_TERMCAP_ue
export LESS_TERMCAP_us