Prüfen, ob string enthält eine nicht-Ziffer-Zeichen
Wie kann ich überprüfen, ob eine gegebene Zeichenkette enthält nicht-numerische Zeichen, Beispiele :
x11z returns > 0
x$1 also returns > 0
1111~ also returns > 0
Vom Charakter meine ich alles, was nicht zwischen 0-9
. Ich sah ähnliche threads aber nicht von Ihnen spricht über "non 0-9", außer das Sie zeigen wenn seine a-z
oder A-Z
.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einfach eine negierte Zeichenklasse:
Diese passen auf alle nicht-numerischen Zeichen und keine strings aus nur Ziffern.
[:digit:]
?Nur durch die Verwendung
bash
pattern-matching:=~
bedeuten?Etwas wie dieses:
oder
Meisten dieser Vorschläge gibt true zurück, wenn das erste Zeichen ist eine Ziffer, aber nicht finden, Fehler in der Zeichenfolge. Die Funktion gibt true zurück, wenn der gesamte string Ziffern, false, wenn alle nicht-Ziffern erkannt werden, die in der Zeichenfolge.
if isdigit $1; then echo "is digit"; else echo "nop"; fi
Andere Möglichkeit, eine bash "containment" - check