Portál AbcLinuxu, 13. května 2025 03:51

Dotaz: Jak na vynimky v BASH?

18.12.2006 19:03 Tomáš Maruška
Jak na vynimky v BASH?
Přečteno: 128×
Odpovědět | Admin
mam takyto skript:

#!/bin/bash
echo -n "Zadajte cislo od 1 do 10: "
read NN

if [ $NN -lt 11 ] && [ 0 -lt $NN ]; then
echo "Uhadl jsem cislo! Je to $NN!"
elif [ 10 -lt $NN ] || [ $NN -lt 1 ]; then
echo "Cislo je mimo interval!"
fi

lenze ked do premennej NN dam znak (nie cislo) tak skript padne s tym ze ocakaval cislo. existuje tu nieco ako vymika (exception) ako vo vsetkych programovacich jazykoch? alebo ako inak by som mohol odchytit chybu aj vseobecne nie len v tomto pripade? Dakujem
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

18.12.2006 19:14 Andrej Herceg | skóre: 43
Rozbalit Rozbalit vše Re: Jak na vynimky v BASH?
Odpovědět | | Sbalit | Link | Blokovat | Admin
pridaj:
case "$NN" in
*[!0-9]*) echo "$NN nie je cislo"; exit;;
esac
18.12.2006 19:25 zabza | skóre: 52 | blog: Nad_sklenkou_cerveneho
Rozbalit Rozbalit vše Re: Jak na vynimky v BASH?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Příkaz test (neboli [) se chová úplně standardně a pokud spadne, vrací nenulovou hodnotu a vypíše chybu na stderr -- není potřeba žádných vyjímek:

[ivok@zero ~]$ [ 200 -gt 100 ] 2>/dev/null
[ivok@zero ~]$ echo $?
0
[ivok@zero ~]$ [ a -gt 100 ] 2>/dev/null
[ivok@zero ~]$ echo $?
2

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.