Conozco bibliotecas en lenguajes como Ruby y Javascript para facilitar la coloración de sus scripts de terminal utilizando nombres de colores como "rojo".
¿Pero hay algo como esto para los scripts de shell en Bash, o Ksh, o lo que sea?
bash
shell-script
terminal
colors
el espejo
fuente
fuente

Respuestas:
Puede definir colores en sus secuencias de comandos bash de la siguiente manera:
Y luego úselos para imprimir en los colores requeridos:
fuente
Puedes usar
tputORprintfUtilizando
tput,solo crea la función como se muestra a continuación y úsalas
puedes llamar a la función anterior usando
shw_err "WARNING:: Error bla bla"Utilizando
printffuente
echo -eno lo esprintf, y también necesita una advertencia de que difiere de latputopción en que no se adapta automáticamente para adaptarse$TERM.En zsh :
fuente
print -P '%F{red}blah%f'Para usos comunes simples (línea de texto completa en un solo color, con nueva línea final) modifiqué el código de jasonwryan de la siguiente manera:
fuente
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" }'Es mejor usar el
tputque manejará los caracteres de escape dependiendo de las capacidades de salida / terminal. (Si un terminal no puede interpretar\e[*los códigos de color, entonces será "contaminado" que hace que la salida más difícil de leer. (O, a veces, sigrepdicha salida, verá los\e[*en los resultados)Vea este tutorial para
tput.Puedes escribir :
Aquí hay un tutorial para imprimir un reloj de color en la terminal.
Además, tenga en cuenta que
tputaún puede imprimir caracteres de escape al redirigir STDOUT a un archivo:Para evitar que esto suceda, configure sus
tputvariables como se propone en esta solución .fuente