Aufgaben-Python/courses/bash/06_schleifen_arrays_und_assoziative_maps
Alex Mueller 2571cb8847 feat(ux): responsive kurs-sidebar und kapitel-drawer für alle 13 kurse & web-ide
- Dynamic Sidebar mit window.COURSES_MANIFEST für 13 Kurse (216 Kapitel)
- Kurswechsler Dropdown mit Direktnavigation
- Fortschrittsanzeige mit Solved-Checkmarks (✓) aus localStorage
- Responsive Off-Canvas Drawer mit Floating Action Button (☰ Kapitel) & Backdrop auf Mobile/Tablets
- Web-IDE Topbar Drawer-Button (☰ Kapitel) für unterbrechungsfreien Vollbild-Editor
- Saubere Bereinigung redundanter statischer Legacy-Sidebars
2026-09-12 13:49:46 +02:00
..
aufgabe.sh Integration von 2 vollständigen DevOps- & Scripting-Kursen: (1) Linux Bash & Cloud DevOps (16 Module) und (2) Modern PowerShell 7+ Core (16 Module) mit Multithreading, REST-Pipelines, Runner-Adaptern und 8 neuen Zertifikaten 2026-08-30 12:55:08 +02:00
index.html feat(ux): responsive kurs-sidebar und kapitel-drawer für alle 13 kurse & web-ide 2026-09-12 13:49:46 +02:00
musterloesung.sh Integration von 2 vollständigen DevOps- & Scripting-Kursen: (1) Linux Bash & Cloud DevOps (16 Module) und (2) Modern PowerShell 7+ Core (16 Module) mit Multithreading, REST-Pipelines, Runner-Adaptern und 8 neuen Zertifikaten 2026-08-30 12:55:08 +02:00
README.md Integration von 2 vollständigen DevOps- & Scripting-Kursen: (1) Linux Bash & Cloud DevOps (16 Module) und (2) Modern PowerShell 7+ Core (16 Module) mit Multithreading, REST-Pipelines, Runner-Adaptern und 8 neuen Zertifikaten 2026-08-30 12:55:08 +02:00
test_aufgabe.sh Integration von 2 vollständigen DevOps- & Scripting-Kursen: (1) Linux Bash & Cloud DevOps (16 Module) und (2) Modern PowerShell 7+ Core (16 Module) mit Multithreading, REST-Pipelines, Runner-Adaptern und 8 neuen Zertifikaten 2026-08-30 12:55:08 +02:00

Bash 06: Schleifen, Arrays & Assoziative Maps 🔄

Willkommen zu Modul 06 des Linux Bash & DevOps Lehrpfads!

In diesem Modul meisterst du for- und while-Schleifen, sicheres zeilenweises Einlesen von Streams (while IFS= read -r), indizierte Arrays, assoziative Arrays (declare -A) als Hashmaps sowie professionelles CLI-Parameter-Parsing mit getopts.


💡 1. Das Wichtigste in Kürze

Schleifenkonstrukte

  • for item in "${arr[@]}": Iteriert über Elemente eines Arrays.
  • while IFS= read -r line; do ... done: Sicheres zeilenweises Einlesen ohne Whitespace-Trimming.

Indizierte Arrays

SERVERS=("web01" "web02" "db01")
SERVERS+=("cache01")          # Element anhängen
echo ${SERVERS[0]}            # web01
echo ${#SERVERS[@]}           # 4 (Länge des Arrays)
echo "${SERVERS[@]}"          # Alle Elemente

Assoziative Arrays (Hashmaps / Dictionaries)

Mit declare -A erstellst du Key-Value-Speicher in Bash:

declare -A HOST_IPS=(
  ["web"]="192.168.1.10"
  ["db"]="192.168.1.20"
)

HOST_IPS["redis"]="192.168.1.30"
echo "Web-IP: ${HOST_IPS["web"]}"
echo "Alle Keys: ${!HOST_IPS[@]}"
echo "Alle Values: ${HOST_IPS[@]}"

CLI-Optionen mit getopts

Sauberes Verarbeiten von Flags wie -e prod -p 8080 -v:

while getopts "e:p:v" opt; do
  case "$opt" in
    e) ENV="$OPTARG" ;;
    p) PORT="$OPTARG" ;;
    v) VERBOSE=true ;;
  esac
done

🎯 Aufgaben in aufgabe.sh

  1. TODO 1 (summiere_zahlen_array): Summiere beliebig viele Zahlen mit einer for-Schleife.
  2. TODO 2 (lese_csv_zeilenweise): Lies CSV-Daten mit while IFS=',' read -r ein und gib eine gewünschte Spalte aus.
  3. TODO 3 (verwalte_server_hashmap): Verwalte ein assoziatives Array (declare -A) mit get, set und keys.
  4. TODO 4 (zaehle_element_haeufigkeit): Zähle Vorkommen von Items mit einer assoziativen Counter-Map.
  5. TODO 5 (parse_cli_flags): Parse CLI-Parameter (-e, -p, -v) mit getopts.

🧪 Tests ausführen

bash test_aufgabe.sh