Bash 터미널에서 Windows의 "색상 a", "색상 b"에 해당

Bash 터미널에서 Windows의 "색상 a", "색상 b"에 해당

Windows OS에서는 just color a또는 color b등 을 입력하여 color c터미널의 글꼴 색상을 일시적으로 변경할 수 있습니다.

bash 터미널에 이 작업을 수행하는 명령이 있습니까?

나는 영구적인 변경을 원하지 않습니다. 단지 공개 세션만으로 충분합니다.

답변1

당신은 다음을 언급하고 있습니다.명령값은 0-f(즉, 0에서 15까지의 십진수)를 예상합니다. 유사한 명령은 다음을 사용합니다.tput:

tput setaf 10

("a"는 10의 16진수입니다)전경색상과

tput setab 10

에 대한배경색상. 그것들은 별개입니다용어 정보능력.

이 예에서는 터미널 설명에 최소 16가지 색상이 있다고 가정합니다. 8개만 있으면 tput눈치채지 못하지만 결과는 만족스럽지 않습니다. 당신은 이것을 볼 수 있습니다

tput colors

기본적으로 에서는 tput현재 값을 사용하여 $TERM터미널 설명을 선택합니다. 옵션 을 사용하여 이를 재정의할 수 있습니다 -T. 예를 들어, 다음을 사용하는 경우xterm("xterm"으로 설정된 다른 터미널과 달리 ) 이 스크린샷에 표시된 대로 터미널 설명을 TERM사용할 수 있습니다 .xterm-16color

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

tput( 라인 15에는 유용한 효과가 없다는 것을 알 수 있을 것입니다.108색 범위를 벗어났습니다.)

터미널 설명, 여부xterm또는xterm-16color(또는xterm-256color) tput터미널에 쓸 수 있는 이스케이프 시퀀스를 만드는 방법을 알려줍니다. Bash 프롬프트는 색상을 설정하거나 재설정하는 이스케이프 시퀀스도 보낼 수 있습니다. 쉘 스크립트 내에서 텍스트를 호출 tput하고 에코한 경우 동일한 명령(bash 프롬프트로 구분)이 동일한 방식으로 작동하지 않을 수 있지만 색상이 지정된 텍스트를 볼 수 있습니다. 또한 일부 프로그램(예 ls:)은 색상을 설정/재설정합니다. 이러한 다양한 응용 프로그램과 공유할 수 있는 터미널의 색상 상태는 단 하나뿐입니다. 터미널은 자동으로 전환되지 않습니다.

쉘 스크립트를 테스트하는 것은 쉘 프롬프트의 세부 사항에 의존하는 것보다 더 예측 가능합니다. 여기에 예가 있습니다.

#!/bin/sh
case $TERM in
xterm*)
        TERM=xterm-256color
        ;;
linux*)
        TERM=linux-16color
        ;;
esac
export TERM
for p in $(seq 0 15)
do
        tput setab $p
        for q in $(seq 0 15)
        do
                tput setaf $q
                printf '%x%x' $p $q
        done
        tput sgr0
        printf '\n'
done

그리고 xterm의 스크린샷:

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

관련 정보