Predefinir colores para Terminal?

13

Estaba tratando de recordar cómo podría predefinir los colores dentro del .bashrcarchivo para que pudieran llamarse cuando lo hago, ${RED}por ejemplo.

No recuerdo si esta era la forma correcta de hacerlo, pero era algo así si puedo recordar;

NC="\033[0;0;0m"      # no color or formatting
RED="\033[1;49;91m"   # color red
BLU="\033[1;49;94m"   # color blue
GRN="\033[1;49;32m"   # color green

otro que recuerdo, estaba usando functionpara poder usarlo en cualquier momento en cualquier lugar. Tenía un archivo que me mostraba cómo hacerlo, pero perdí este archivo que mostraba cómo hacerlo, y no puedo recordar cómo va.

souravc
fuente

Respuestas:

12

Puede definir una función en su de la ~/.bashrcsiguiente manera

showred(){
    export RED='\033[1;49;91m'
    export NC='\033[0;0;0m'
    echo -e $RED"$@"$NC
}

Fuente ~/.bashrccomo . ~/.bashrco abrir una nueva terminal y probar.

ingrese la descripción de la imagen aquí

También puede escribir en colores mientras escribe algo en la terminal usando echoo printfcomo sigue,

ingrese la descripción de la imagen aquí

souravc
fuente
Esto parece una forma más amigable y limpia de hacer esto.
4
declare -r RED='\033[0;31m'
declare -r GREEN='\033[0;32m'
declare -r NC='\033[0m'
Eran Ben-Natan
fuente
3

Es posible que haya visto la $'...'sintaxis, lo que hace que el shell interprete secuencias de barra invertida:

NC=$'\e[0m'       # no color or formatting
RED=$'\e[1;31m'   # color red
GRN=$'\e[1;32m'   # color green
BLU=$'\e[1;34m'   # color blue

Otra forma de hacer esto, usando tput :

NC=$(tput sgr0)                  # no color or formatting
RED=$(tput bold; tput setaf 1)   # color red
GRN=$(tput bold; tput setaf 2)   # color green
BLU=$(tput bold; tput setaf 4)   # color blue

Puede combinarlos con las funciones de contenedor en la respuesta de souravc; No lo necesitarás -e.

deltab
fuente