Farben für Terminal vordefinieren?

13

Ich habe versucht, mich daran zu erinnern, wie ich Farben in einer .bashrcDatei vordefinieren kann, damit sie beispielsweise aufgerufen werden können ${RED}.

Ich kann mich nicht erinnern, ob dies der richtige Weg war, aber es war so etwas, wenn ich mich erinnern kann.

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

eine andere, an die ich mich erinnere, benutzte sie, functiondamit sie jederzeit und überall verwendet werden konnte. Ich hatte eine Datei, die mir zeigte, wie man das macht, aber ich habe diese Datei verloren, die zeigte, wie man das macht, und ich kann mich nicht erinnern, wie es geht.

souravc
quelle

Antworten:

12

Sie können eine Funktion in Ihrer ~/.bashrcwie folgt definieren

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

Quelle ~/.bashrcals . ~/.bashrcoder öffne ein neues Terminal und versuche es.

Bildbeschreibung hier eingeben

Sie können auch in Farben schreiben, während Sie etwas mit echooder printfwie folgt auf das Terminal schreiben :

Bildbeschreibung hier eingeben

souravc
quelle
Dies scheint eine freundlichere und sauberere Art zu sein.
4
declare -r RED='\033[0;31m'
declare -r GREEN='\033[0;32m'
declare -r NC='\033[0m'
Eran Ben-Natan
quelle
3

Möglicherweise haben Sie die $'...'Syntax gesehen, die bewirkt, dass die Shell Backslash-Sequenzen interpretiert:

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

Eine andere Möglichkeit, dies mit tput zu tun :

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

Sie können diese mit den Wrapper-Funktionen in souravcs Antwort kombinieren. du wirst nicht brauchen -e.

Deltab
quelle