tput을 사용하여 배경 256색 표시

tput을 사용하여 배경 256색 표시

다음 bash 함수를 사용하여 배경색을 색조하여 tput의 256색을 표시합니다.

 tput-bgcolours ()
 {
    for color in {0..255}; do
        bg=$(tput setab $color)
        echo -n $bg" "
    done
    echo $(tput sgr0)
 }

0에서 255 사이의 모든 색상을 보는 대신 다양한 값을 함수에 전달할 수 있나요?

답변1

넌 할 수있어:

tput-bgcolours()
{
    for color in "$@"; do
        tput setab $color
        printf " "
    done
    tput sgr0
}

tput-bgcolours {0..10} {30..40}

이는 "$@"함수의 매개변수 세트입니다. 이제 함수 호출자는 인쇄하려는 값을 전달할 수 있습니다.

이것은 또한 당신이 가지고 있지 않은 장점을 가지고 있습니다.가지다사용 범위:

tput-bgcolours 1 7 15 8 1

답변2

몇 가지 대안이 있습니다:

sh와 호환 가능

tput-bgcolours() {
    for color in $(seq "$1" "$2"); do
        tput setab "$color"
        printf ' '
    done
    tput sgr0
}

배쉬 루프

tput-bgcolours() {
    for (( c = $1; c <= $2; ++c )); do
        tput setab "$c"
        printf ' '
    done
    tput sgr0
}

용법:

tput-bgcolours FROM TO

tput-bgcolours 0 16

물론 ( )와 같은 함수에 테스트를 추가할 수도 있습니다 test if length of arg is empty.

if [ -z "$1" ] || [ -z "$2" ]; then
    return 1
fi

또는 기본값을 사용하십시오.

from=${1:-0}
to=${2:-255}

관련 정보