inhalt einer variablen ueberpruefen -> alles zahlen?

Ale-x

Ale-x

bash lehrling
ich habe eine variable
zahl="153228510"
jetzt soll überprüft werden ob es sich alles um zahlen handelt
wie kann ich das machen?





in einer anderen variablen soll eine url stehn wie
url="www.ale-x.com"
wie kann ich da die eingabe überprüfen?
 
hier ein kleines Tool, das ich immer mal gerne zur Numerischprüfung einsetze:
Code:
#!/bin/csh
set TMPOUT = 0
if ( $#argv > 0 ) then
   set TMPOUT = `echo $1 | awk 'BEGIN{ isnum=0 } /^[0-9][0-9]*$/ { isnum = 1 } END{ print isnum}'`
endif
exit $TMPOUT

Es liefert Returncode 1, wenn ein 1-n stelliger numerischer Parameter mitgegeben wird, ansonsten Returncode 0.

Beispiele:
Code:
$ isnum ; echo $?
0
$ isnum a ; echo $?
0
$ isnum A ; echo $?
0
$ isnum 1a ; echo $?
0
$ isnum b2 ; echo $?
0
$ isnum , ; echo $?
0
$ isnum - ; echo $?
0
$
$
$
$ isnum 0 ; echo $?
1
$ isnum 12 ; echo $?
1
$
$
$ isnum -12 ; echo $?
0
$ isnum 12- ; echo $?
0
$
:)


Für das url-Thema hab' ich jetzt so auf Anhieb nix :-(
 
ich hab jetzt den ganzen vormittag nach regulären ausdrücken gesucht aber nich genau das gefunden was ich wollte nun mache ich es einfach so, funktioniert auch :)
besser hab ich es nicht hinbekommen vielleicht hat noch jemand einen tipp

Code:
UIN=153228510
UINTEST=`echo $UIN | sed 's/[0-9]\{1,12\}/true/' `

if [ "$UINTEST" != "true" ] ;then
   echo "UIN ist falsch"
   exit
fi
 
Code:
awk ' { printf /^[0-9]+$/ ? "digits\n" : "mixed\n" }' <<< "11111"
 
Hi, ich mache so etwas immer mit grep und das sieht in der bash so aus:
Code:
$ ii=879595
$ echo $ii | grep '[^0-9]'
$ # bzw.:
$ ii=879x595
$ echo $ii | grep'[^0-9]'
879x595
und für den url:
Code:
$ myurl='http://www.unixboard.de'
$ echo $myurl | grep 'http://.\+\.de'
http://www.unixboard.de
$ # bzw.:
$ echo $myurl | grep 'http://www\..\+\.de'
http://www.unixboard.de
In einer if-Anweisung läßt sich dann direkt die Variable $? auswerten:
Code:
if `echo $myurl | grep 'http://.\+\.de' > /dev/null 2>&1`
then ...
else ...
fi
 
Wahlweise könntest dazu auch expr benützen:

man expr schrieb:
expr1 : expr2
The ``:'' operator matches expr1 against expr2, which must be a
regular expression. The regular expression is anchored to the
beginning of the string with an implicit ``^''. expr expects
"basic" regular expressions, see re_format(7) for more informa-
tion on regular expressions.

If the match succeeds and the pattern contains at least one regu-
lar expression subexpression ``\(...\)'', the string correspond-
ing to ``\1'' is returned; otherwise the matching operator
returns the number of characters matched. If the match fails and
the pattern contains a regular expression subexpression the null
string is returned; otherwise 0.
 

Ähnliche Themen

Endless OS 3.9.0: Linux-Distribution rückt Offline-Inhalte in den Fokus

Google plant für Chrome weitere Einschränkungen bei HTTP-Inhalten

Wie komme ich an den Inhalt des Inhalts einer Variable?

Dateien selektieren und zählen

Linux 4.5 will UEFI-Variablen besser schützen

Zurück
Oben