Ahojte
Klasický /bin/test na to moc použitelný není když má ta proměnná několik desetinných míst, zápornou hodnotu, je prázdná nebo je to nedejbože směs náhodných znaků.
Napadlo mě ty proměnné zkusit sečíst a pokud bc vyhodí chybu tak by to znamenalo, že proměnná není číslo. Nějak takto
c=123; if ! echo "$c+$c" | bc; then echo chyba; fi
Problém je že bc mi sice chybu vyhodí
(standard_in) 1: syntax error
když mu podstrčím nečíselné hodnoty aby je sečetl, ale exit status vrátí stejně pokaždé 0

. Ty čísla můžou vypadat různě. Například
2.2
-15
0
-44.094
0.13
Někdy dokonce před desetinnou tečkou chybí nula takže číslo 0.03 je .03 a podobné zvěrstva.
Další nástraha je ta když by proměnná obsahovala správně čísla ale znaky
+-*/ mezi nima. třeba
c=-4.2+1.3 to by byl taky pěkný chaos. Toto už vůbec netuším jak řešit.
Platná proměnná by měla obsahovat maximálně jedno kladné/záporné číslo s libobolným počtem desetinných míst. Jedná se mi o to aby se shell skript dal nějak zastavit pokud proměnná dostane nějakou nesmyslnou hodnotu která nejde spočítat. Ošetřit vstup.