Wie prüft man mit if in einem Bash-Skript, ob das erste Argument -p oder -k ist?

Antwort vom

Prüfe das erste Argument mit einer if-Abfrage und verknüpfe die beiden Zeichenkettenvergleiche durch ||.

#!/bin/bash

if [[ "${1:-}" == "-p" || "${1:-}" == "-k" ]]; then
    echo "Erstes Argument ist -p oder -k"
else
    echo "Erstes Argument fehlt oder hat einen anderen Wert"
fi

Dabei bezeichnet $1 das erste übergebene Argument, || bedeutet „oder“; die Schreibweise ${1:-} verhindert bei fehlendem Argument auch mit aktiviertem set -u einen Fehler. Wichtig: Für Zeichenketten verwendest du ==, nicht den numerischen Vergleich -eq.

Quellen:

Kategorie: Programmierung

Erstellt mit GPT-6.1 Sol (OpenAI) auf Basis einer aktuellen Websuche.

Verwandte Fragen

Warum löscht rm im Bash-Skript eine Datei mit Leerzeichen trotz Anführungszeichen nicht?

Die Anführungszeichen werden nicht ignoriert: Dein Code übergibt den Dateinamen korrekt als ein einziges Argument an rm. Bash wertet die Anführungszeichen aus und entfernt sie anschlie...

Wie prüft man in Bash, ob die zweite Variable eine 8-stellige Zahl oder eine mit @ beginnende 11-stellige Zeichenfolge ist?

Prüfe das zweite Argument mit einem regulären Ausdruck: entweder genau acht Ziffern oder @ gefolgt von zehn beliebigen Zeichen. Wenn du mit „zweite Variable“ das zweite übe...