Martin Hochreiter schrieb:
und wo ist das Problem:
$ IST=4500 && SOLL=$(cat update.ini | grep "DATVersion" | cut -d "=" -f 2 | tail -n1) $ if [[ $IST < $SOLL ]] ; then echo "IST ist kleiner" ; fi IST ist kleiner $ if [[ $IST -lt $SOLL ]] ; then echo "IST ist kleiner" ; fi IST ist kleiner $ if [ $IST -lt $SOLL ] ; then echo "IST ist kleiner" ; fi IST ist kleiner
Eben nicht, ich krieg bei
if [ "$ISTID" -lt "$SOLLID" ]; then
eine "integer" Fehlermeldung ($ISTID=20) und genauso wie bei
if [ $ISTID -lt $SOLLID ]; then
lg Ich bin da echt ratlos
Folgendes for d in $(awk -F"=" '/DATVersion/ {print $2}' Daten.txt) do [ $d -lt 4540 ] && echo kleiner || echo "grösser"; done; funktioniert hier einwandfrei. Wenn das bei Dir nicht geht... Ist die Datei evtl. im DOS Format? Dann sollte es so gehen: for d in $(awk -F"=" '/DATVersion/ {print int($2)}' Daten.txt) do [ $d -lt 4540 ] && echo kleiner || echo "grösser"; done; Also die Ausgabe in awk explizit als integer formatieren. Oder die Datendatei mal mit recode ins Linux Format umwandeln.
-- Gruss Bernd