home-harmening:scripts:shell:setze_farben

Dies ist eine alte Version des Dokuments!


#!/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