Setze Farben in Bash
Skript definiert ein paar Variablen für eine farbenfrohe formatierte Ausgabe
#!/bin/bash nf="\e[0m" # ANSI-Sequenz zum Zurücksetzen der Formatierung. # Assoziatives Array mit verschiedenen Formatierungen. declare -A formats # Array für die Reihenfolge der Ausgabe, da diese ansonsten durcheinander ist ordered_keys=( "red" "blue" "yellow" "green" "uline_red" "uline_blue" "uline_yellow" "uline_green" "blink_red" "blink_blue" "blink_yellow" "blink_green" "bground_red" "bground_blue" "bground_yellow" "bground_green" ) formats=( # Standardfarben ["red"]="\e[0;31m" ["blue"]="\e[0;34m" ["yellow"]="\e[0;33m" ["green"]="\e[0;32m" # Unterstrichene Farben ["uline_red"]="\e[4;31m" ["uline_blue"]="\e[4;34m" ["uline_yellow"]="\e[4;33m" ["uline_green"]="\e[4;32m" # Blinkende Farben (Hinweis: Wird nicht in allen Terminals unterstützt) ["blink_red"]="\e[5;31m" ["blink_blue"]="\e[5;34m" ["blink_yellow"]="\e[5;33m" ["blink_green"]="\e[5;32m" # Hintergrundfarben ["bground_red"]="\e[0;41m" ["bground_blue"]="\e[0;44m" ["bground_yellow"]="\e[0;43m" ["bground_green"]="\e[0;42m" ) show_help (){ echo "Zeige deine EIngabe $1" # Ausgabe der Tabellenüberschrift echo -e "Name | Code -> Vorschau" echo -e "-----------------------------------------------------" # Durchläuft das Array in der definierten Reihenfolge und gibt die Namen, ANSI-Codes und farbige Vorschau aus. for name in "${ordered_keys[@]}"; do printf "%-15s | write %-15s -> ${formats[$name]}Beispiel-Text$nf\n" "$name" "${formats[$name]}" done echo echo 'Ein Aufruf in einem Skript erfolgt mit ${formats[FORMATIERUNG z.B. red,uline_red ...]MEIN TEXT${nf}' echo printf 'Ich möchte einen ${formats[red]} roten Text haben ${nf}\n' printf "Ich möchte einen ${formats[red]}roten Text${nf} haben.\n" } if [ "$1" == "--help" ]; then show_help ; fi exit