Melhor é usar tput
, que manipulará caracteres de escape, dependendo dos recursos de saída / terminal. (Se um terminal não puder interpretar \e[*
códigos de cores, ele será "poluído", o que dificulta a leitura da saída. (Ou, às vezes, se você grep
dessa saída, verá esses \e[*
nos resultados)
Veja este tutorial para tput
.
Você pode escrever:
blue=$( tput setaf 4 ) ;
normal=$( tput sgr0 ) ;
echo "hello ${blue}blue world${normal}" ;
Aqui está um tutorial para imprimir um relógio colorido no terminal.
Além disso, observe que tput
ainda pode imprimir caracteres de escape ao redirecionar STDOUT para um arquivo:
$ myColoredScript.sh > output.log ;
# Problem: output.log will contain things like "^[(B^[[m"
Para evitar que isso aconteça, configure suas variáveis tput
como propostas em esta solução .