使用 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

有几个替代方案:

  • printf一般来说优先于echo.
  • 一个不需要echo tput

兼容sh

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

bash 循环

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

用法:

tput-bgcolours FROM TO

IE

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}

相关内容