Files
crumbmissions/missions/dojo/weisser_guertel.sh
Branko May Trinkwald d4d75af428 🐼 feat(dojo): BashPanda Gürtel-System - Von Schwarz auf Weiss 🥋
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>
2025-12-24 00:29:30 +01:00

314 lines
9.8 KiB
Bash
Executable File

#!/bin/bash
# 🐼 BashPanda Dojo - Weisser Gürtel 🤍
# Lehrt: Background Jobs, Processes, ps, jobs, &
# Schwierigkeit: Meister
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
source "${SCRIPT_DIR}/../../lib/waldwaechter.sh"
cat << 'EOF'
╔═══════════════════════════════════════════════════════════╗
║ ║
║ 🐼 BASHPANDA DOJO - WEISSER GÜRTEL 🤍 ║
║ ║
║ "Der Meister kontrolliert nicht nur Code, ║
║ sondern auch Prozesse" ║
║ ║
╚═══════════════════════════════════════════════════════════╝
EOF
echo "🐼 BashPanda steht auf. Er verneigt sich als Ebenbürtiger."
echo "🥋 Du bist bereit für die letzte Lehre."
echo ""
cat << 'EOF'
Der Weisse Gürtel lehrt dich PROZESS-KONTROLLE.
Du wirst lernen:
🎯 & - Jobs im Hintergrund starten
🎯 jobs - Aktive Jobs anzeigen
🎯 ps - Prozesse anzeigen
🎯 kill - Prozesse beenden
🎯 wait - Auf Prozesse warten
"Ein Meister lässt Prozesse für sich arbeiten,
während er meditiert."
EOF
read -p "➡️ Bereit für die Meisterprüfung? (j/n): " start
[[ ! "$start" =~ ^[jJyY]$ ]] && echo "🐼 Der Weg endet nie." && exit 0
echo ""
# === PHASE 1: Background Jobs mit & ===
cat << 'EOF'
═══════════════════════════════════════════════════════════
📚 PHASE 1: & - Hintergrund-Prozesse
═══════════════════════════════════════════════════════════
Mit & startest du einen Prozess im Hintergrund.
Das Terminal bleibt frei für weitere Befehle.
EOF
echo "🐼 Live Demo:"
echo ""
echo "Starte: sleep 5 &"
sleep 5 &
JOB_PID=$!
echo "Job gestartet mit PID: $JOB_PID"
echo ""
echo "Terminal ist frei! Ich kann weiter arbeiten."
echo "Der Job läuft im Hintergrund..."
echo ""
cat << 'EOF'
💡 Background Syntax:
command & Starte im Hintergrund
$! PID des letzten Background-Jobs
jobs Zeige alle aktiven Jobs
fg %1 Bring Job 1 in Vordergrund
bg %1 Sende Job 1 in Hintergrund
EOF
# === PHASE 2: jobs & ps ===
cat << 'EOF'
═══════════════════════════════════════════════════════════
📚 PHASE 2: jobs & ps - Übersicht behalten
═══════════════════════════════════════════════════════════
EOF
echo "🐼 Demo: Mehrere Jobs starten"
echo ""
sleep 3 &
sleep 4 &
sleep 5 &
echo "jobs zeigt alle Jobs dieser Shell:"
jobs
echo ""
echo "ps zeigt alle deine Prozesse:"
ps aux | grep $USER | head -5
echo ""
cat << 'EOF'
💡 Prozess-Befehle:
jobs Jobs der aktuellen Shell
ps aux Alle Prozesse (detailliert)
ps aux | grep X Suche Prozess X
pgrep name Finde PID von Prozess
pkill name Beende Prozess nach Namen
EOF
# === PHASE 3: wait - Auf Prozesse warten ===
cat << 'EOF'
═══════════════════════════════════════════════════════════
📚 PHASE 3: wait - Synchronisation
═══════════════════════════════════════════════════════════
wait wartet bis ein Background-Job fertig ist.
EOF
echo "🐼 Live Demo:"
echo ""
cat << 'CODE'
echo "Starte Job..."
sleep 2 &
PID=$!
echo "Warte auf Job $PID..."
wait $PID
echo "Job ist fertig!"
CODE
echo ""
echo "Ausführung:"
echo "Starte Job..."
sleep 2 &
PID=$!
echo "Warte auf Job $PID..."
wait $PID
echo "✅ Job ist fertig!"
echo ""
cat << 'EOF'
💡 wait Verwendung:
wait Warte auf ALLE Background-Jobs
wait $PID Warte auf spezifischen Job
wait %1 Warte auf Job-Nummer 1
EOF
# === PHASE 4: Praktisches Beispiel ===
cat << 'EOF'
═══════════════════════════════════════════════════════════
📚 PHASE 4: Parallel Processing - Die Macht
═══════════════════════════════════════════════════════════
Mehrere Tasks parallel ausführen, dann auf alle warten.
EOF
echo "🐼 Demo: 3 Tasks parallel"
echo ""
cat << 'CODE'
function task() {
echo "Task $1 startet..."
sleep 2
echo "Task $1 fertig!"
}
task 1 &
task 2 &
task 3 &
wait
echo "Alle Tasks abgeschlossen!"
CODE
echo ""
echo "Ausführung:"
function task() {
echo "🥋 Task $1 startet..."
sleep 1
echo "✅ Task $1 fertig!"
}
task 1 &
task 2 &
task 3 &
wait
echo "🐼 Alle Tasks abgeschlossen!"
echo ""
# === DIE MEISTERPRÜFUNG ===
cat << 'EOF'
═══════════════════════════════════════════════════════════
🥋 MEISTERPRÜFUNG - WEISSER GÜRTEL 🤍
═══════════════════════════════════════════════════════════
Deine finale Aufgabe: Erstelle 'parallel_processor.sh'
Das Skript soll:
1. Eine Funktion 'process_file' definieren:
- Nimmt Dateiname als Parameter
- Zählt Wörter mit wc -w
- Schreibt Ergebnis in \${datei}.count
2. 5 Test-Dateien erstellen:
echo "Test Inhalt" > file1.txt
(für file1 bis file5)
3. Alle 5 parallel verarbeiten:
for file in file*.txt
do
process_file "$file" &
done
4. Mit wait auf alle warten
5. Ergebnisse ausgeben:
cat file*.count
Bonuspunkte:
- Nutze jobs um zu zeigen wie viele laufen
- Speichere PIDs in Array
- Prüfe mit $? ob Jobs erfolgreich waren
EOF
echo "💡 Dies kombiniert ALLES was du gelernt hast:"
echo " - Funktionen (Gelb)"
echo " - Arrays & Schleifen (Pink)"
echo " - Background Jobs & wait (Weiss)"
echo ""
read -p "Hast du die Meisterprüfung bestanden? (j/n): " pruefung
if [[ "$pruefung" =~ ^[jJyY]$ ]]; then
cat << 'EOF'
╔═══════════════════════════════════════════════════════════╗
║ ║
║ 🏆 MEISTERSCHAFT ERREICHT! 🏆 ║
║ ║
║ Du hast den WEISSEN GÜRTEL 🤍 verdient! ║
║ ║
║ DU BIST NUN EIN BASH-MEISTER! ║
║ ║
║ "Der Weg des Meisters endet nie. ║
║ Mit jedem Tag lernst du etwas Neues. ║
║ Lehre nun andere, was du gelernt hast." ║
║ ║
║ - BashPanda 🐼 ║
║ ║
╚═══════════════════════════════════════════════════════════╝
EOF
echo ""
echo "🥋 DEINE REISE DURCH DAS DOJO:"
echo ""
echo " 🖤 Schwarzer Gürtel: echo, Variablen, read"
echo " 💖 Pinker Gürtel: if/then, Schleifen, Arrays"
echo " 💙 Blauer Gürtel: sed, case, bc"
echo " 💚 Grüner Gürtel: grep, regex, Pattern"
echo " 💛 Gelber Gürtel: Funktionen, source"
echo " 🤍 Weisser Gürtel: Background Jobs, Prozesse"
echo ""
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo ""
echo "🌲 WILLKOMMEN IN DER CRUMBCREW! 🌲"
echo ""
echo " Du kannst nun:"
echo " - Alle 18 Waldwächter befehligen"
echo " - Eigene Bash-Skripte meistern"
echo " - Komplexe Missions im Crumbforest lösen"
echo ""
echo "🎯 Nächste Schritte:"
echo " - Erkunde missions/robots/ (Hardware-Projekte)"
echo " - Nutze ./crumb-mission-selector.sh (Option 9: CrumbCrew)"
echo " - Erstelle eigene Skripte und teile sie!"
echo ""
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo ""
echo "🐼 BashPanda sagt zum Abschied:"
echo ""
bashpanda "Was ist die Weisheit eines Bash-Meisters?"
else
cat << 'EOF'
🐼 "Der weisse Gürtel ist der Anfang, nicht das Ende.
Übe weiter. Der Weg des Meisters ist niemals vollendet."
EOF
fi
echo ""
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo "💬 bashpanda \"Was sind Background-Prozesse?\""
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo ""