Hilfe- und Nutzungshinweise in Bash-Skripten anzeigen
December 7, 2015
Eine klare und leicht zugängliche Hilfe-Nachricht ist entscheidend für die Benutzerfreundlichkeit eines jeden Kommandozeilen-Skripts. Eine usage- oder help-Funktion, die aufgerufen wird, wenn ein Benutzer -h, --help oder falsche Argumente angibt, ist eine bewährte Methode.
Diese Anleitung zeigt, wie Sie eine solche Funktion implementieren und in die Optionsverarbeitung Ihres Skripts integrieren.
1. Die usage-Funktion definieren
Es ist üblich, alle Hilfe- und Nutzungsinformationen in einer einzigen Funktion zu bündeln. Die Verwendung eines Here Documents (cat <<'EOF') ist ideal, um mehrzeilige Texte sauber zu formatieren, ohne echo für jede Zeile verwenden zu müssen.
#!/usr/bin/env bash
# Definiert die Funktion zur Anzeige der Hilfe
usage() {
cat <<'EOF'
Ein Skript zur Verarbeitung von Dateien.
Verwendung:
mein_skript.sh -f <datei> [-v] [-h]
Optionen:
-f, --file <datei> Die zu verarbeitende Eingabedatei (obligatorisch).
-v, --verbose Aktiviert die ausführliche Ausgabe.
-h, --help Zeigt diese Hilfe an und beendet das Skript.
EOF
}
2. Integration mit getopts
Die usage-Funktion wird typischerweise an zwei Stellen aufgerufen:
- Wenn der Benutzer explizit Hilfe anfordert (z.B. mit
-h). - Wenn der Benutzer ungültige Optionen oder fehlende Argumente übergibt.
Das folgende Beispiel integriert die usage-Funktion in eine getopts-Schleife.
#!/usr/bin/env bash
set -euo pipefail
# ... (usage-Funktion von oben hier einfügen) ...
# Standardwerte
FILE=""
VERBOSE=0
# Wenn keine Argumente übergeben werden, Hilfe anzeigen und beenden
if [ $# -eq 0 ]; then
usage
exit 1
fi
while getopts ":f:vh" opt; do
case "$opt" in
f)
FILE="$OPTARG"
;;
v)
VERBOSE=1
;;
h) # Hilfe anzeigen und erfolgreich beenden
usage
exit 0
;;
:) # Fehlendes Argument für eine Option
echo "Fehler: Die Option -$OPTARG erfordert ein Argument." >&2
usage
exit 1
;;
\?) # Ungültige Option
echo "Fehler: Unbekannte Option -$OPTARG" >&2
usage
exit 1
;;
esac
done
# Überprüfen, ob die obligatorische Option -f gesetzt wurde
if [ -z "$FILE" ]; then
echo "Fehler: Die Option -f ist obligatorisch." >&2
usage
exit 1
fi
# Hauptlogik des Skripts
echo "Verarbeite Datei: $FILE"
# ...
3. Die Bedeutung von Exit-Codes
Die Verwendung korrekter Exit-Codes ist wichtig für die Skript-Automatisierung.
exit 0: Zeigt einen erfolgreichen Abschluss an. Dies sollte verwendet werden, wenn der Benutzer die Hilfe mit-haufruft, da dies kein Fehler ist.exit 1(oder ein anderer Wert > 0): Signalisiert einen Fehler. Dies sollte verwendet werden, wenn das Skript aufgrund falscher Benutzereingaben nicht ausgeführt werden kann.
Fazit
Eine gut implementierte usage-Funktion ist ein Kennzeichen eines professionellen Shell-Skripts. Sie verbessert nicht nur die Benutzerfreundlichkeit, sondern dient auch als kompakte Dokumentation der Funktionalität und der erwarteten Parameter des Skripts.