Portál AbcLinuxu, 8. května 2025 00:10
f=007; f=$((f+0)); echo $f # výsledek 7 - OK f=008; f=$((f+0)); echo $f # výsledek 008: value too great for base (error token is "008") f=009; f=$((f+0)); echo $f # výsledek 009: value too great for base (error token is "009") f=010; f=$((f+0)); echo $f # výsledek 8 - CHYBA
Řešení dotazu:
"Numerical values starting with a zero (0) are interpreted as numbers in octal notation by the C language. As the only digits allowed in octal are {0..7}, an 8 or a 9 will cause the evaluation to fail."Mozna nekdo dohleda , proc tomu tak je..
[cronin][~][09:17:55] echo 0007 + 0 | bc 7 [cronin][~][09:18:12] echo 0008 + 0 | bc 8 [cronin][~][09:18:17] echo 0009 + 0 | bc 9Ono shell nie je vždy bash, a kto musí písať skripty prenositeľné medzi Linuxom, Solarisom a BSD, naučí sa našľapovať opatrne, i tak si sem-tam nohu vytkne.
$ f=009; $((10#$f+0)); echo $f 10Ale neviem ako mu nanutit, aby bol vysledok v nejakej sustave, alebo aby ostal v tej, v ktorej je prvy operand.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.