sonnenblen.de - Das unabhängige Sun User Forum
Betriebssysteme => Solaris => Thema gestartet 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
-
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.