Windows의 "색상 a"와 "색상 b"는 bash 터미널에서 동일합니다.

Windows의 "색상 a"와 "색상 b"는 bash 터미널에서 동일합니다.

Windows OS에서는 를 입력 color a하거나 color b기다리기만 color c하면 터미널의 글꼴 색상을 일시적으로 변경할 수 있습니다.

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

나는 영구적인 변화를 만들고 싶지 않습니다. 단지 공개 회의만으로 충분할 것입니다.

답변1

당신은 의미합니까?주문하다예상 값은 0-f(즉, 10진수 0~15)입니다. 비슷한 명령이 사용됩니다tput:

tput setaf 10

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

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의 스크린샷:

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

관련 정보