Variable überprüfen

slaughter.j4ck

slaughter.j4ck

Mitglied
Hallo,
ich möchte in einem Skript prüfen, ob die eingegebene Variable aus Zahlen oder Buchstaben besteht. Gibt es dafür eine Funktion oder einen Befehl?

Danke für Hilfe!

mfg
slaughter.j4ck
 
Definiere genauer bitte:
Die Variable soll nur aus Ziffern bestehen, oder nur aus Buchstaben, oder soll die Variable sowohl Ziffern als auch Buchstaben enthalten?
 
Hi,

reguläre Ausdrücke sind Deine Freunde. Sie beinhalten auch die Möglichkeit von Zeichenklassen:

Code:
echo "eins2drei4" | tr -d '[:alpha:]'   # schneidet alle alphabetischen Zeichen raus
echo "eins2drei4" | tr -d '[:digit:]'   # schneidet alle numerischen Zeichen raus

Beispiel zum Überprüfen von Eingaben:
Code:
if [ ! -z "$(echo $variable|tr -d '[:alpha:]')" ]; then
 echo "variable darf nur aus Buchstaben bestehen!"
fi

Du kannst aber auch gezielt auf einzelne Zeichen filtern:

Code:
if [ ! -z "$(echo $variable|tr -d 'a-t06-9<>\+\-=')"; then
 echo "variable darf nur aus den Zeichen a-t,0,6-9,<,>,+,-,= bestehen"
fi


Gruß Daniel
 
Definiere genauer bitte:
Die Variable soll nur aus Ziffern bestehen, oder nur aus Buchstaben, oder soll die Variable sowohl Ziffern als auch Buchstaben enthalten?

@ smg: Die Variable darf nur aus Ziffern bestehen, anderenfals muss eine Fehlermeldung ausgegeben werden.
 
Als kleine Funktion:

Code:
#!/bin/bash

isNumeric()
{
  case $1 in
    ''|*[!0-9]*) return 1;;
    *) return 0;;
  esac
}

isNumeric $1

if [ $? -eq 0 ]
then
        echo "Nur Ziffern"
else
        echo "Nicht (nur) Ziffern"
fi
 
Code:
[[ "$var" =~ '^[0-9]*$' ]] || echo "besteht nicht nur aus Ziffern"

Sollte so gehen mit Bash :)
 

Ähnliche Themen

Hilfe für ein shell script

Verzeichnis mit 1200 Dateien auf Verweise in Textdateien checken

Skript soll nicht doppelt laufen... kill pkill pid cron

Teilstring extrahieren

Keine grafische Oberfläche (Debian Installation)

Zurück
Oben