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}

関連情報