다음 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}