[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: OT: Bash-Skript und awk



Hi,

Heiko Schlittermann wrote:
> Hallo, ich noch mal,
> 
> Heiko Schlittermann <hs@schlittermann.de> (Sa 10 Nov 2007 01:28:40 CET):
>> Sokol <mailist@sokol-web.de> (Sa 10 Nov 2007 01:04:44 CET):
>> > Ich frage mich, wieso ich bei der 8 einen Fehler bekomme.  
>> > Interpretiert awk die 8 in einem anderen Zahlensystem? Ideen?
>> > Verbesserungsvorschläge sind herzlich willkommen!
>> 
>> Ja, 08 gibt's nicht. Aber nicht der AWK hat das Problem, sondern die
>> Shell beim  while [ $j -lt 31 ]
> 
> Das ist falsch. Das Problem ist nicht der Vergleich, den scheint die
> Shell irgendwie zu machen (spannende Frage, wie hier die Zahl
> interpretiert wird....), aber das j++ bereitet dann ein Problem.
> 
> Deine Ausweg: eine zweite Variable verwenden.

wäre eine Variante, ist aber nicht notwendig, wenn der OP
printf verwendet.
Imho 'spart' er sich damit die Änderung seines Zählers, was
man sowieso nicht, zumindest auf diese Weise, tun sollte.

> Grade schnell noch mal probiert:
> "test" scheint sich nicht zu kümmern:
> 
>     $ test 08 -eq 8; echo $?
>     0
>     $ _
> 
> 
>     $ j=08
>     $ : $((j++))
>     -bash: 08: value too great for base (error token is "08")
>     $ _

Imho klar, ist halt die Base für Octal.
Ausserdem fangen Integers i.d.R. nicht mit '0' an.

Reinhold




Reply to: