GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Farbige Shell-Script-Ausgabebibliothek

Ich habe die Liste von Demure als Inspiration genommen und ein wenig DRYing daraus gemacht. (Und \e geändert zum hexadezimalen \x1B , da ersteres in der Terminal.app von OS X seit Snow Leopard nicht mehr unterstützt wird.) Folgendes habe ich mir ausgedacht:

## 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"

Die BR_ Farben sind die "hellen" oder "hochintensiven" Farben. Auf diese Weise können Sie sie sogar mit anderen Schriftstilen mischen. (z. B. unterstrichen hellweiß)

Wenn Sie dies mit einem Lesezeichen versehen möchten, habe ich eine Zusammenfassung dafür erstellt:https://gist.github.com/ian128K/39a490e5aa8d3bb77a8b


Hier ist ein modifiziertes Snippet aus meinen Dotfiles, das tun sollte, was Sie wollen

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';

Dann können Sie einfach 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-coloured-text-in-linux-shell.html


Schamloser Stecker ... check Rainbow.sh

Verwendung

Importieren Sie einfach rainbow.sh und verwenden Sie die verfügbaren Funktionen in Ihren Skripten.

source rainbow.sh 

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

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


Linux
  1. Unerwartetes Verhalten eines Shell-Skripts?

  2. Shell-Skript mit Funktion und Parameter als Variablen?

  3. Wie kann man feststellen, ob die Ausgabe eines Befehls oder Shell-Skripts Stdout oder Stderr ist?

  4. Bearbeiten Sie das Shell-Skript, während es ausgeführt wird

  5. Wie füge ich eine neue Zeile in ein Linux-Shell-Skript ein?

Hinzufügen von Benutzern zu sudoers durch Shell-Skript

Aktuelles Verzeichnis des Shell-Skripts?

Mehrzeilige Ausgabe in einem Shell-Skript einrücken

Zeile mit Shell-Skript an die Datei /etc/hosts anhängen

Wie verwalte ich die Protokollausführlichkeit in einem Shell-Skript?

Kann ich die Pipe-Ausgabe als Shell-Skript-Argument verwenden?