Fórum Ubuntu CZ/SK

Ubuntu pro osobní počítače => Software => Příkazový řádek a programování pro GNU/Linux => Téma založeno: kingpin 06 Července 2009, 11:00:06

Název: BASH zjisteni jestli je promenna cislem
Přispěvatel: kingpin 06 Července 2009, 11:00:06
Ahojte,
Potreboval by som osetrit jeden jednoduchy skript na na pocitanie zakladnych matematickych operacii.
Ide mi o to aby to zistovalo ci do premnnych $a a $c boli zadane cisla. Jo a nevedel by mi niekto napisat do akej maximalnej hodnoty dokaze bash pocitat ? Pretoze toto by som tam asi mal tiez niekam vlozit  aby nevypisovalo hlouposti typu "nelze spocitat" :D

Kód: [Vybrat]
#!/bin/sh

echo -n "Zadaj prve cislo: "
read a
echo -n "Zadaj matematicky operator (+,-,x,/): "
read b
echo -n "Zadaj druhe cislo: "
read c

if $a= JE CISLO :D && $c= JE CISLO :D
 then continue
 else
   echo "Zadavajte iba numericke znaky!"
 break
fi

case "$b" in
+)
echo "Vysledok je: " `expr $a + $c`;
;;
-)
echo "Vysledok je: " `expr $a - $c`;
;;
x)
echo "Vysledok je: " `expr $a \* $c`;
;;
/)
Název: Re: BASH zjisteni jestli je promenna cislem
Přispěvatel: qUAKER 06 Července 2009, 11:19:09
Kód: [Vybrat]
#!/bin/sh

echo -n "Zadaj prve cislo: "
read a
echo -n "Zadaj matematicky operator (+,-,x,/): "
read b
echo -n "Zadaj druhe cislo: "
read c

if [ $a -eq $a 2> /dev/null ] && [ $c -eq $c 2> /dev/null ];then
case "$b" in
+) echo "Vysledok je: " `expr $a + $c`;
;;
-) echo "Vysledok je: " `expr $a - $c`;
;;
x) echo "Vysledok je: " `expr $a \* $c`;
;;
/) echo "Vysledok je: " `expr $a / $c`;
esac
else
echo "Zadavajte iba numericke znaky!"
exit 1
fi
Název: Re: BASH zjisteni jestli je promenna cislem
Přispěvatel: kingpin 06 Července 2009, 11:32:12
Tak toto by ma nenapadlo...
Moc chytre, vdaka za pomoc  :)
Název: Re: BASH zjisteni jestli je promenna cislem
Přispěvatel: qUAKER 06 Července 2009, 11:48:19
Tak toto by ma nenapadlo...
Moc chytre, vdaka za pomoc  :)

btw, continue a break není možné použít v if, jen v for, while a until :)
Název: Re: BASH zjisteni jestli je promenna cislem
Přispěvatel: premet 06 Července 2009, 12:17:31
Ješte si tam můžeš přidat do toho "case" nakonec tohle
Kód: [Vybrat]
*) echo "Špatný operátor";pro případ, kdy se zadá špatný operátor  :)

Quejky: Ale jinak celkem dobrej způsob na testování integerů, tohle by mě nenapadlo, snad to funguje  ;D
Název: Re: BASH zjisteni jestli je promenna cislem
Přispěvatel: kingpin 06 Července 2009, 12:47:41
Citace
btw, continue a break není možné použít v if, jen v for, while a until :)

Cykly som este moc nepreberal ale myslim, ze sa k nim tento tyzden urcite dopracujem a dam si do buducna pozor. Vdaka za upozornenie  :)

*) Echo ... doplnene a funguje  :)
Název: Re: BASH zjisteni jestli je promenna cislem
Přispěvatel: qUAKER 06 Července 2009, 13:41:45
a taky by to chtělo vychytat to, že to bere a vypisuje jen celá čísla :)