Hi,
* Martin Pitt [03-01-23 08:45:05 +0100] wrote:
Am 22.01.03 schrieb Andreas Kretschmer:
in einem Script lese ich mit dialog diverse Parameter ein. Ein Parameter darf nur eine gültige Zahl sein, und zwar eine ganzzahlige Zahl größer 0. Wie teste ich das sinnvoll? Evtl. noch darauf, ob eine max. Obergrenze nicht überschritten wird, wobei das ja dann trivial ist, wenn ich weiß, daß die Eingabe gültig ist.
test "$param" -gt 0 && echo "Zahl ist größer 0"
test "$param" -le 10 && echo "Zahl ist kleiner gleich 0"
Da hast du noch Fehlermeldungen der Shell, falls $param keine Zahl ist. Deshalb braucht man sowas:
,----[ /tmp/0.sh ]- | #!/bin/sh | | if [ "$1" -gt 0 ] && [ "$1" -le 10 ]; then | exit 0 | else | exit 1 | fi `-
,- | pdmef@klaus:~$ /tmp/0.sh foobar 2>/dev/null ; echo $? | 1 `-
...und ein zweites Skript, dass den Exit-Code auswertet. Kann man in der Shell irgendwie pruefen, ob der Wert einer Variable numerisch ist (evtl. noch Typ)?
bye, Rocco