bash "case" Zahlenbereich matchen + Buchstaben

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
ren22

bash "case" Zahlenbereich matchen + Buchstaben

Beitrag von ren22 » 25.02.2019 21:08:03

Hallo,

wie kann man mit unter bash mit einer case Abfrage einen Zahlenbereich von 1-21 matchen, 0 und alles über 21 sollte dann kein output, wichtig ist mir hierbei, dass in der case Abfrage später auch noch die Buchstaben A und B matchen sollten, aber das ist eigentlich nicht Teil meiner Frage, also kann ich den Kopfteil der case Anweisung nicht mit 1${input:--} beginnen um nur Zahlen zu matchen :(

Code: Alles auswählen

groesstezahl=21
case ${input} in
        [1-9]|1[0-9]|2[0-1]|$groesstezahle) echo "Zahl ist $groesstezahl";;
        *) echo "keine Zahl von 1-21";;
esac

Benutzeravatar
Meillo
Moderator
Beiträge: 8782
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: bash "case" Zahlenbereich matchen + Buchstaben

Beitrag von Meillo » 25.02.2019 21:17:43

Ich verstehe deine Frage leider noch nicht ganz.


Case in der Shell macht reines String-Matching. Dass es bei dir Zahlen sind ist der Shell egal, sie matcht trotzdem bloss Strings. Wenn du numerische Logik haben willst, dann musst du test(1) nehmen. Das kannst du auch in dein case einbauen, falls gewuenscht.
Use ed once in a while!

Antworten