it-praxisportal/courses/bash/03_variablen_environment_und_subshells/aufgabe.sh

56 lines
2.1 KiB
Bash

#!/usr/bin/env bash
# ==============================================================================
# 🐧 BASH 03: VARIABLEN, ENVIRONMENT, EXPANSION & ARITHMETIK
# ==============================================================================
# 🎯 TEILZIEL 1 (TODO 1): Exportiere eine Umgebungsvariable dynamisch.
# Setze und exportiere "$1" mit dem Wert "$2" und gib den String "$1=$2" auf stdout aus.
setze_umgebungsvariable() {
local name="$1"
local wert="$2"
# TODO: Exportiere die Variable und gib "NAME=WERT" aus
return 0
}
# 🎯 TEILZIEL 2 (TODO 2): Nutze Command Substitution $(...) für eine System-Kennung.
# Kombiniere $(whoami), $(hostname) und $(date +%Y-%m) im Format:
# "USER@HOST_YYYY-MM"
generiere_system_kennung() {
# TODO: Erzeuge und gib die Kennung per Command Substitution $(...) aus
return 0
}
# 🎯 TEILZIEL 3 (TODO 3): Dateipfad mit reiner Bash Parameter Expansion zerlegen.
# Extrahiere aus "$1" (z.B. "/var/log/nginx/access.log"):
# - Verzeichnis (DIR): z.B. /var/log/nginx
# - Dateiname (FILE): z.B. access.log
# - Endung (EXT): z.B. log
# - Basisname ohne Endung (BASE): z.B. access
# Ausgabeformat: "DIR: <dir> | FILE: <file> | EXT: <ext> | BASE: <base>"
# ⚠️ WICHTIG: Verwende keine externen Tools (kein basename, dirname, sed, awk)!
zerlege_dateipfad() {
local voller_pfad="$1"
# TODO: Nutze ${pfad%/*}, ${pfad##*/}, ${datei##*.}, ${datei%.*}
return 0
}
# 🎯 TEILZIEL 4 (TODO 4): Parameter Expansion mit Standardwerten (${var:-default}).
# Gib "$1" zurück. Wenn "$1" leer oder nicht gesetzt ist, gib "$2" (Fallback) zurück.
ermittle_konfigurationswert() {
local wert="$1"
local fallback="$2"
# TODO: Nutze Parameter Expansion mit Default-Wert
return 0
}
# 🎯 TEILZIEL 5 (TODO 5): Quota-Berechnung mit Shell-Arithmetik $(( ... )).
# Berechne aus "$1" (total_mb) und "$2" (used_mb):
# - freier Speicher: total_mb - used_mb
# - Prozentuale Belegung (Ganzzahl): (used_mb * 100) / total_mb
# Ausgabeformat: "TOTAL: <total>MB, USED: <used>MB (<prozent>%), FREE: <free>MB"
berechne_disk_quota() {
local total_mb="$1"
local used_mb="$2"
# TODO: Berechne freie MB und Prozent per $(( ... ))
return 0
}