GNU/Linux >> Tutoriales Linux >  >> Linux

Biblioteca de salida de scripts de shell de colores

Tomé la lista de recatada como inspiración y la sequé un poco. (Y cambió \e al hexadecimal \x1B , ya que el primero no es compatible con Terminal.app de OS X desde Snow Leopard). Esto es lo que se me ocurrió:

## Colours and font styles
## Syntax: echo -e "${FOREGROUND_COLOUR}${BACKGROUND_COLOUR}${STYLE}Hello world!${RESET_ALL}"

# Escape sequence and resets
ESC_SEQ="\x1b["
RESET_ALL="${ESC_SEQ}0m"
RESET_BOLD="${ESC_SEQ}21m"
RESET_UL="${ESC_SEQ}24m"

# Foreground colours
FG_BLACK="${ESC_SEQ}30;"
FG_RED="${ESC_SEQ}31;"
FG_GREEN="${ESC_SEQ}32;"
FG_YELLOW="${ESC_SEQ}33;"
FG_BLUE="${ESC_SEQ}34;"
FG_MAGENTA="${ESC_SEQ}35;"
FG_CYAN="${ESC_SEQ}36;"
FG_WHITE="${ESC_SEQ}37;"
FG_BR_BLACK="${ESC_SEQ}90;"
FG_BR_RED="${ESC_SEQ}91;"
FG_BR_GREEN="${ESC_SEQ}92;"
FG_BR_YELLOW="${ESC_SEQ}93;"
FG_BR_BLUE="${ESC_SEQ}94;"
FG_BR_MAGENTA="${ESC_SEQ}95;"
FG_BR_CYAN="${ESC_SEQ}96;"
FG_BR_WHITE="${ESC_SEQ}97;"

# Background colours (optional)
BG_BLACK="40;"
BG_RED="41;"
BG_GREEN="42;"
BG_YELLOW="43;"
BG_BLUE="44;"
BG_MAGENTA="45;"
BG_CYAN="46;"
BG_WHITE="47;"

# Font styles
FS_REG="0m"
FS_BOLD="1m"
FS_UL="4m"

El BR_ los colores son los colores "brillantes" o de "alta intensidad". Hecho de esta manera, incluso puedes mezclarlos con otros estilos de fuente. (por ejemplo, blanco brillante subrayado)

Si quieres marcar esto como favorito, hice una esencia:https://gist.github.com/ian128K/39a490e5aa8d3bb77a8b


Aquí hay un fragmento modificado de mis archivos de puntos que debería hacer lo que quieras

RCol='\e[0m'    # Text Reset

# Regular           Bold                Underline           High Intensity      BoldHigh Intens     Background          High Intensity Backgrounds
Bla='\e[0;30m';     BBla='\e[1;30m';    UBla='\e[4;30m';    IBla='\e[0;90m';    BIBla='\e[1;90m';   On_Bla='\e[40m';    On_IBla='\e[0;100m';
Red='\e[0;31m';     BRed='\e[1;31m';    URed='\e[4;31m';    IRed='\e[0;91m';    BIRed='\e[1;91m';   On_Red='\e[41m';    On_IRed='\e[0;101m';
Gre='\e[0;32m';     BGre='\e[1;32m';    UGre='\e[4;32m';    IGre='\e[0;92m';    BIGre='\e[1;92m';   On_Gre='\e[42m';    On_IGre='\e[0;102m';
Yel='\e[0;33m';     BYel='\e[1;33m';    UYel='\e[4;33m';    IYel='\e[0;93m';    BIYel='\e[1;93m';   On_Yel='\e[43m';    On_IYel='\e[0;103m';
Blu='\e[0;34m';     BBlu='\e[1;34m';    UBlu='\e[4;34m';    IBlu='\e[0;94m';    BIBlu='\e[1;94m';   On_Blu='\e[44m';    On_IBlu='\e[0;104m';
Pur='\e[0;35m';     BPur='\e[1;35m';    UPur='\e[4;35m';    IPur='\e[0;95m';    BIPur='\e[1;95m';   On_Pur='\e[45m';    On_IPur='\e[0;105m';
Cya='\e[0;36m';     BCya='\e[1;36m';    UCya='\e[4;36m';    ICya='\e[0;96m';    BICya='\e[1;96m';   On_Cya='\e[46m';    On_ICya='\e[0;106m';
Whi='\e[0;37m';     BWhi='\e[1;37m';    UWhi='\e[4;37m';    IWhi='\e[0;97m';    BIWhi='\e[1;97m';   On_Whi='\e[47m';    On_IWhi='\e[0;107m';

Entonces puedes simplemente echo -e "${Blu}blue ${Red}red ${RCol}etc...."


echo -e "\033[33;31m Color Text" - red
echo -e "\033[33;32m Color Text" - green
echo -e "\033[33;33m Color Text" - yellow
echo -e "\033[33;34m Color Text" - blue
echo -e "\033[33;35m Color Text" - Magenta
echo -e "\033[33;30m Color Text" - Gray
echo -e "\033[33;36m Color Text" - Cyan

http://techietent.blogspot.in/2013/03/how-to-echo-colored-text-in-linux-shell.html


Complemento desvergonzado... visita Rainbow.sh

Uso

Solo importa rainbow.sh y comienza a usar las funciones disponibles en tus scripts.

source rainbow.sh 

vargreen=$(echogreen "Grass is green")
varred=$(echored "Roses are red")

echo "$vargreen ..Crickets are noisy.. $varred"


Linux
  1. ¿Tiempo de espera agotado en un script de Shell?

  2. ¿La secuencia de comandos de Shell se bloquea en el comando de correo?

  3. ¿Cómo saber si la salida de un comando o script de Shell es Stdout o Stderr?

  4. Envío de correo HTML usando un script de shell

  5. Verifique la conectividad de la base de datos usando el script Shell

Agregar usuarios a sudoers a través de un script de shell

Shell script directorio actual?

Sangrado de salida de varias líneas en un script de shell

Agregue una línea al archivo /etc/hosts con script de shell

¿Cómo administro la verbosidad del registro dentro de un script de shell?

Iterar sobre la variable $ PATH usando el script de shell