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
tput
ORprintf
Utilizando
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
printf
fuente
echo -e
no lo esprintf
, y también necesita una advertencia de que difiere de latput
opció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
tput
que 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, sigrep
dicha 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
tput
aún puede imprimir caracteres de escape al redirigir STDOUT a un archivo:Para evitar que esto suceda, configure sus
tput
variables como se propone en esta solución .fuente