Estou ciente de bibliotecas em idiomas como Ruby e Javascript para facilitar a colorização dos scripts de terminal usando nomes de cores como "vermelho".
Mas existe algo assim para scripts de shell no Bash, no Ksh, ou o que seja?
bash
shell-script
terminal
colors
o espelho
fonte
fonte
Respostas:
Você pode definir cores em seus scripts bash da seguinte maneira:
E use-os para imprimir nas cores necessárias:
fonte
Você pode usar
tput
OUprintf
Usando
tput
,basta criar a função como abaixo e usá-los
você pode chamar a função acima usando
shw_err "WARNING:: Error bla bla"
Usando
printf
fonte
echo -e
não éprintf
e também precisa de um aviso de que difere datput
opção por não se adaptar automaticamente ao terno$TERM
.No zsh :
fonte
print -P '%F{red}blah%f'
Para usos comuns simples (linha completa de texto em uma única cor, com nova linha à direita), modifiquei o código de jasonwryan da seguinte maneira:
fonte
awk -v red="$(printf '\e[1;31m%%s\e[0m\\n')" -v green="$(printf '\e[1;32m%%s\e[0m\\n')" 'BEGIN { printf red, "This text is in red"; printf green, "This text is in green" }'
Melhor é usar o
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, será "poluído", o que dificulta a leitura da saída. (Ou, às vezes, se vocêgrep
tal saída, você vai ver aqueles\e[*
nos resultados)Veja este tutorial para
tput
.Você pode escrever :
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:Para evitar que isso aconteça, configure suas
tput
variáveis como proposto nesta solução .fonte