Sziasztok,
Van egy kisebb scriptem amiben van egy nagyon egyszerű összeadás. A következő a problémám:
V1:
root:~/scriptek/xxxxx# let hn=05+09
-bash: let: hn=05+09: az érték túl nagy (error token is "09")
V2:
root:~/scriptek/xxxxx# let hn=06+08
-bash: let: hn=06+08: az érték túl nagy (error token is "08")
let hn=06+07
let hn=06+10
Ezekkel már tökéletes :)
Mi a problémája a 08 ill. 09-es számmal?
Köszönöm
- 3344 megtekintés
Hozzászólások
A 0-val kezdodo szamokat szerintem 8as szamrendszerbelinek veszi. Ott meg nincs olyan szamjegy, hogy 8 es 9...
- A hozzászóláshoz be kell jelentkezni
biza
- A hozzászóláshoz be kell jelentkezni
Bizony ám...
- A hozzászóláshoz be kell jelentkezni
ugy van!
- A hozzászóláshoz be kell jelentkezni
let hn=10#08
~~~~~~~~
deb http://deb.metaltux.tk/ wheezy yazzy repack
- A hozzászóláshoz be kell jelentkezni
És hogy megoldást is láss (Bash esetén működik):
shopt -s extglob
a=06
b=08
let hn=${a##+(0)}+${b##+(0)}
echo $hn
Elvileg egyszerűen, extglob nélkül a ${a#0} is jó lehet, ha biztos, hogy csak egy nulla lehet a szám előtt. Viszont jobb a békesség alapon az összes bevezető nullát érdemes lecsapni, és akkor biztos, hogy nyugalom van :)
- A hozzászóláshoz be kell jelentkezni
Köszönöm a megoldást!!!! Tökéletes :) Ma is tanultam
- A hozzászóláshoz be kell jelentkezni
Bandi megoldásával mi a gond? A bash ismeri a szamrendszeralapszama#SZAM formát, tehát amit írt 10#09 teljesen jól kezelhető :-)
a=10#08
b=10#09
let c=( a + b )
echo $c
17
vagy akár így is:
a=08
b=09
let c=(10#$a + 10#$b )
echo $c
17
- A hozzászóláshoz be kell jelentkezni
Csak mutattam egy másik megoldást :) És közben újat is tanultam :-P
- A hozzászóláshoz be kell jelentkezni