次の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
}
バッシュループ
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}