Superuser

Autor Thema: fehler bei "test"  (Gelesen 1936 mal)

Holger0027

  • Gast
fehler bei "test"
« 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


sonnenblen.de - Das unabhängige Sun User Forum

fehler bei "test"
« am: 06. März 2006, 11:04:46 »

Offline Drusus

  • Sobl Master
  • ****
  • Beiträge: 424
  • Intentionally left blank
Re: fehler bei "test"
« Antwort #1 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.