Avant d'aller à la sortie de n'importe quelle couleur, vous devez vous assurer que vous êtes dans un terminal:
[ -t 1 ] && echo 'Yes I am in a terminal' # isatty(3) call in C
Alors vous devez vérifier que le terminal capacité si elle support couleur
sur les systèmes avec terminfo
(basé sur Linux) , vous pouvez obtenir la quantité de prise en charge des couleurs comme
Number_Of_colors_Supported=$(tput colors)
sur les systèmes avec termcap
(BSD) vous pouvez obtenir la quantité de prise en charge des couleurs comme
Number_Of_colors_Supported=$(tput Co)
Ensuite, assurez-vous de la décision:
[ ${Number_Of_colors_Supported} -ge 8 ] && {
echo 'You are fine and can print colors'
} || {
echo 'Terminal does not support color'
}
BTW, ne pas utiliser de colorant comme il a été suggéré avant avec ESC caractères.
L'utilisation standard d'appel à la borne de la capacité qui vous attribue de CORRIGER les couleurs en particulier support de terminal.
Basées sur BSD
fg_black="$(tput AF 0)"
fg_red="$(tput AF 1)"
fg_green="$(tput AF 2)"
fg_yellow="$(tput AF 3)"
fg_blue="$(tput AF 4)"
fg_magenta="$(tput AF 5)"
fg_cyan="$(tput AF 6)"
fg_white="$(tput AF 7)"
reset="$(tput me)"
Basé Sur Linux
fg_black="$(tput setaf 0)"
fg_red="$(tput setaf 1)"
fg_green="$(tput setaf 2)"
fg_yellow="$(tput setaf 3)"
fg_blue="$(tput setaf 4)"
fg_magenta="$(tput setaf 5)"
fg_cyan="$(tput setaf 6)"
fg_white="$(tput setaf 7)"
reset="$(tput sgr0)"
Utilisation En Tant Que
echo -e "${fg_red} Red ${fg_green} Bull ${reset}"