Der 18. Waldwächter betritt den Wald: BashPanda lehrt Bash als Kampfkunst! ✨ Neue Features: 🐼 BashPanda Waldwächter: - Kung Fu Meister Persönlichkeit - Lehrt Bash durch Kampfkunst-Metaphern - Integriert in waldwaechter.sh Library - Crew Memory: Kennt alle anderen Waldwächter 🥋 6 Gürtel-Missionen (Progressive Bash-Meisterschaft): - 🖤 Schwarzer Gürtel: echo, Variablen, read, ANSI codes - 💖 Pinker Gürtel: if/then, while/for, Arrays, Arithmetik - 💙 Blauer Gürtel: sed, case, bc, Textverarbeitung - 💚 Grüner Gürtel: grep, regex, Pattern Matching - 💛 Gelber Gürtel: Funktionen, source, Parameter - 🤍 Weisser Gürtel: Background jobs, Prozesse, Parallelität 📝 Interaktives Quiz-System: - Browser-based Gürtelprüfung (crumbblocks) - 30 Fragen (5 pro Gürtel) - Farbcodiert nach Gürtel - Auto-Export via Clipboard - Terminal-Auswertung mit Zertifikaten 🎓 Zertifikate-System: - Automatische Generierung bei 80%+ - Gespeichert in logs/zertifikate/ - BashPanda's Segen & Weisheiten 📚 Dokumentation: - CLAUDE.md komplett aktualisiert - BashPanda als 18. Waldwächter dokumentiert - Vollständige Dojo-Architektur beschrieben "Der Weg des Codes ist wie der Weg der Kampfkunst: Geduld, Präzision, Wiederholung." - BashPanda 🐼🎋 Crumbforest wächst! 🌲 Der Wurzelbau geht weiter! 🌳 🤖 Generated with Claude Code (https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
301 lines
9.5 KiB
Bash
Executable File
301 lines
9.5 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# 🐼 BashPanda Dojo - Schwarzer Gürtel 🖤
|
|
# Lehrt: echo, printf, Variablen, Benutzereingaben
|
|
# Schwierigkeit: Anfänger
|
|
|
|
# Source waldwaechter library for BashPanda
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
source "${SCRIPT_DIR}/../../lib/waldwaechter.sh"
|
|
|
|
cat << 'EOF'
|
|
|
|
╔═══════════════════════════════════════════════════════════╗
|
|
║ ║
|
|
║ 🐼 BASHPANDA DOJO - SCHWARZER GÜRTEL 🖤 ║
|
|
║ ║
|
|
║ "Der Weg des Codes beginnt mit einem einzigen echo" ║
|
|
║ ║
|
|
╚═══════════════════════════════════════════════════════════╝
|
|
|
|
EOF
|
|
|
|
echo "🐼 BashPanda verneigt sich vor dir..."
|
|
echo "🥋 Willkommen im Dojo, junger Schüler."
|
|
echo ""
|
|
|
|
cat << 'EOF'
|
|
Der Schwarze Gürtel ist der erste Schritt auf dem Weg des Bash-Meisters.
|
|
|
|
Du wirst lernen:
|
|
🎯 echo & printf - Die Stimme des Terminals
|
|
🎯 Variablen - Container für Wissen
|
|
🎯 read - Den Dialog mit dem Nutzer
|
|
🎯 ANSI Codes - Farbe ins Terminal bringen
|
|
|
|
"Eine Reise von tausend Befehlen beginnt mit einem einzigen Zeichen."
|
|
|
|
EOF
|
|
|
|
read -p "➡️ Bereit für dein erstes Training? (j/n): " start
|
|
echo ""
|
|
|
|
if [[ ! "$start" =~ ^[jJyY]$ ]]; then
|
|
echo "🐼 Der Meister wartet geduldig auf deine Rückkehr."
|
|
exit 0
|
|
fi
|
|
|
|
# === PHASE 1: echo - Die Stimme des Terminals ===
|
|
|
|
cat << 'EOF'
|
|
═══════════════════════════════════════════════════════════
|
|
📚 PHASE 1: echo - Die Stimme des Terminals
|
|
═══════════════════════════════════════════════════════════
|
|
|
|
Wie ein Kampfschrei im Dojo, so ist 'echo' die grundlegendste
|
|
Ausgabe im Terminal.
|
|
|
|
EOF
|
|
|
|
echo "🐼 BashPanda zeigt dir:"
|
|
echo ""
|
|
echo " echo 'Hallo Welt'"
|
|
echo ""
|
|
echo "Resultat:"
|
|
echo 'Hallo Welt'
|
|
echo ""
|
|
|
|
cat << 'EOF'
|
|
💡 WICHTIG:
|
|
- Einfache Anführungszeichen ('): Text wird exakt ausgegeben
|
|
- Doppelte Anführungszeichen ("): Variablen werden ersetzt
|
|
- echo -e: Aktiviert ANSI Escape-Sequenzen
|
|
|
|
EOF
|
|
|
|
echo "🥋 Deine erste Kata (Übung):"
|
|
echo ""
|
|
echo "1. Öffne ein neues Terminal"
|
|
echo "2. Tippe: echo 'Ich bin ein Bash-Schüler'"
|
|
echo "3. Drücke Enter"
|
|
echo ""
|
|
|
|
read -p "Hast du es probiert? (j/n): " phase1
|
|
echo ""
|
|
|
|
if [[ "$phase1" =~ ^[jJyY]$ ]]; then
|
|
echo "✅ Gut! Die erste Technik sitzt."
|
|
else
|
|
echo "🐼 'Ohne Übung kein Fortschritt. Probiere es später aus.'"
|
|
fi
|
|
|
|
# === PHASE 2: printf & ANSI Codes ===
|
|
|
|
cat << 'EOF'
|
|
|
|
═══════════════════════════════════════════════════════════
|
|
📚 PHASE 2: printf & ANSI Codes - Die Kunst der Formatierung
|
|
═══════════════════════════════════════════════════════════
|
|
|
|
printf ist wie echo, aber mit mehr Kontrolle.
|
|
ANSI Codes sind wie Chi - sie geben dem Text Kraft und Farbe.
|
|
|
|
EOF
|
|
|
|
echo "🐼 BashPanda demonstriert:"
|
|
echo ""
|
|
echo " echo -e '\\e[1mFett\\e[22m und \\e[4munterstrichen\\e[24m'"
|
|
echo ""
|
|
echo "Resultat:"
|
|
echo -e '\e[1mFett\e[22m und \e[4munterstrichen\e[24m'
|
|
echo ""
|
|
|
|
cat << 'EOF'
|
|
📖 Wichtige ANSI Codes:
|
|
\e[1m - Fett
|
|
\e[22m - Fett zurücksetzen
|
|
\e[4m - Unterstrichen
|
|
\e[24m - Unterstrichen zurücksetzen
|
|
\e[32m - Grüne Farbe
|
|
\e[0m - Alle Formatierungen zurücksetzen
|
|
|
|
EOF
|
|
|
|
echo "🥋 Deine zweite Kata:"
|
|
echo ""
|
|
echo "Erstelle eine Datei 'farbtest.sh' mit:"
|
|
echo ""
|
|
cat << 'CODE'
|
|
#!/bin/bash
|
|
echo -e "\e[32mGrün wie Bambus\e[0m"
|
|
echo -e "\e[1m\e[33mGelb und fett wie die Sonne\e[0m"
|
|
echo -e "\e[4mUnterstrichen wie ein Pfad\e[0m"
|
|
CODE
|
|
echo ""
|
|
echo "Dann: chmod +x farbtest.sh && ./farbtest.sh"
|
|
echo ""
|
|
|
|
read -p "Möchtest du fortfahren? (j/n): " phase2
|
|
echo ""
|
|
|
|
# === PHASE 3: Variablen - Container für Wissen ===
|
|
|
|
cat << 'EOF'
|
|
═══════════════════════════════════════════════════════════
|
|
📚 PHASE 3: Variablen - Container für Wissen
|
|
═══════════════════════════════════════════════════════════
|
|
|
|
Eine Variable ist wie ein Bambus - biegsam, kann viel tragen,
|
|
und wächst mit der Zeit.
|
|
|
|
EOF
|
|
|
|
echo "🐼 BashPanda zeigt dir:"
|
|
echo ""
|
|
|
|
cat << 'CODE'
|
|
name="Kung Fu Meister"
|
|
echo "Hallo, $name"
|
|
echo "Mein Name ist: ${name}"
|
|
CODE
|
|
|
|
echo ""
|
|
echo "Resultat:"
|
|
name="Kung Fu Meister"
|
|
echo "Hallo, $name"
|
|
echo "Mein Name ist: ${name}"
|
|
echo ""
|
|
|
|
cat << 'EOF'
|
|
💡 Regeln für Variablen:
|
|
- Keine Leerzeichen um das '=' Zeichen!
|
|
- Variablennamen: Buchstaben, Zahlen, Unterstriche
|
|
- Zugriff mit $variable oder ${variable}
|
|
|
|
EOF
|
|
|
|
echo "🥋 Deine dritte Kata:"
|
|
echo ""
|
|
echo "Erstelle 'variablen_test.sh':"
|
|
echo ""
|
|
cat << 'CODE'
|
|
#!/bin/bash
|
|
guertel="Schwarz"
|
|
meister="BashPanda"
|
|
echo "Ich trainiere für den ${guertel}en Gürtel."
|
|
echo "Mein Meister ist $meister."
|
|
CODE
|
|
echo ""
|
|
|
|
read -p "Bereit für die letzte Phase? (j/n): " phase3
|
|
echo ""
|
|
|
|
# === PHASE 4: read - Der Dialog mit dem Nutzer ===
|
|
|
|
cat << 'EOF'
|
|
═══════════════════════════════════════════════════════════
|
|
📚 PHASE 4: read - Der Dialog mit dem Nutzer
|
|
═══════════════════════════════════════════════════════════
|
|
|
|
Ein Meister hört zu. Mit 'read' gibst du dem Nutzer eine Stimme.
|
|
|
|
EOF
|
|
|
|
echo "🐼 BashPanda zeigt dir:"
|
|
echo ""
|
|
|
|
cat << 'CODE'
|
|
echo "Wie heißt du?"
|
|
read name
|
|
echo "Willkommen, $name!"
|
|
CODE
|
|
|
|
echo ""
|
|
echo "Lass es uns live testen:"
|
|
echo ""
|
|
echo "Wie heißt du?"
|
|
read name
|
|
echo "Willkommen im Dojo, $name! 🐼"
|
|
echo ""
|
|
|
|
cat << 'EOF'
|
|
💡 read Optionen:
|
|
read name - Speichert Eingabe in $name
|
|
read -p "Frage: " - Zeigt Prompt vor Eingabe
|
|
read -s password - Silent mode (für Passwörter)
|
|
|
|
EOF
|
|
|
|
# === PHASE 5: Die Gürtelprüfung ===
|
|
|
|
cat << 'EOF'
|
|
|
|
═══════════════════════════════════════════════════════════
|
|
🥋 GÜRTELPRÜFUNG - SCHWARZER GÜRTEL 🖤
|
|
═══════════════════════════════════════════════════════════
|
|
|
|
Deine Aufgabe: Erstelle ein Skript 'begruessung.sh' das:
|
|
|
|
1. Den Nutzer nach seinem Namen fragt
|
|
2. Nach seinem Lieblings-Essen fragt
|
|
3. Eine farbige Begrüßung ausgibt mit:
|
|
- Namen in GRÜN
|
|
- Essen in GELB
|
|
- "Willkommen im Dojo" in FETT
|
|
|
|
Beispiel-Ausgabe:
|
|
Willkommen im Dojo!
|
|
Name: Max (in grün)
|
|
Lieblingsessen: Nudeln (in gelb)
|
|
|
|
EOF
|
|
|
|
echo "💡 Hilfestellung: Nutze echo -e, read -p, Variablen und ANSI Codes"
|
|
echo ""
|
|
echo "Wenn du fertig bist, führe dein Skript aus und zeige es BashPanda!"
|
|
echo ""
|
|
|
|
read -p "Hast du die Prüfung absolviert? (j/n): " pruefung
|
|
echo ""
|
|
|
|
if [[ "$pruefung" =~ ^[jJyY]$ ]]; then
|
|
cat << 'EOF'
|
|
╔═══════════════════════════════════════════════════════════╗
|
|
║ ║
|
|
║ 🎉 GLÜCKWUNSCH! 🎉 ║
|
|
║ ║
|
|
║ Du hast den SCHWARZEN GÜRTEL 🖤 verdient! ║
|
|
║ ║
|
|
║ "Der erste Schritt ist getan. ║
|
|
║ Tausend weitere liegen vor dir." ║
|
|
║ ║
|
|
║ - BashPanda 🐼 ║
|
|
║ ║
|
|
╚═══════════════════════════════════════════════════════════╝
|
|
|
|
EOF
|
|
|
|
echo "🥋 Was du gelernt hast:"
|
|
echo " ✅ echo & printf für Ausgaben"
|
|
echo " ✅ ANSI Codes für Formatierung"
|
|
echo " ✅ Variablen erstellen und nutzen"
|
|
echo " ✅ read für Benutzereingaben"
|
|
echo ""
|
|
echo "🎯 Nächster Gürtel: PINK 💖 (Kontrolle: if/then, Arrays)"
|
|
echo ""
|
|
else
|
|
cat << 'EOF'
|
|
🐼 "Es ist keine Schande, mehr Zeit zu brauchen.
|
|
Auch der größte Meister war einst ein Anfänger.
|
|
Übe weiter, und komm zurück wenn du bereit bist."
|
|
|
|
EOF
|
|
fi
|
|
|
|
echo ""
|
|
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
echo "💬 Fragen? Rufe den Meister:"
|
|
echo " bashpanda \"Wie funktioniert echo?\""
|
|
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
echo ""
|