sonnenblen.de - Das unabhängige Sun User Forum

Betriebssysteme => Solaris => Thema gestartet von: Holger0027 am 06. März 2006, 11:04:46

Titel: fehler bei "test"
Beitrag von: Holger0027 am 06. März 2006, 11:04:46
kann mir jemand das erklären ???
ich hab 2 zahlen (cksum < file > | awk '{print $1}' )
und vergleich die mit if [ $OLDCHECKSUM -eq $CHECKSUM ]
und obwohl sie unterschiedlich sind, bekomm ich als antwort, das sie gleich sind ???

test 2769040631 -eq 4286830214
echo $?
0

es muß an der bash liegen ...
bei ksh & sh
bekomm ich :

test 2769040631 -eq 4286830214
echo $?
1

Titel: Re: fehler bei "test"
Beitrag von: Drusus am 06. März 2006, 14:16:20
Moin,

ist ein bekannter Bug in der Bash. Vergleiche mit Zahlen oberhalb von 2^31 (also 2147483648) gehen schief.
Gefixt ist das ganze in bash 2.05b und spaeter. Solaris 10 kommt mit der bash 3.x und ist daher nicht von dem Bug betroffen.
Workaround: nimm nicht das broken bash builtin sondern nimm /bin/test

Tschau,
  Drusus.