>>Операторы -eq, -gt и т.д. сравнивают операнды как числа:
>
>конструкция if [ `cat xxx` = '7.3' ] ; then ....
>
>работает нормально, без ошибок, а вот если вместо = ставить < или >=, то тут он уже требует числовых значений.
Об чем и речь. Оператор '=' сравнивает строки.
>>
>>IFS=. read whole fraction; [ $whole -lt ...] && etc
>
>Я не понял эту строку, поясни пожалуйста.
>Я поискал инфу, но насколько
>я понял, Команда read есть только в ksh, да и то
>нигде не нашел описания :(
read есть в любом шелле. Она вчитывает строку в свои аргументы,
пословно (если аргументов мало, а слов много, последний аргумент
будет содержать более одного слова). Разбиение строки на слова
делается по значению IFS (internal field separator), каковой мы
делаем точкой на время выполнения команды read. man bash.
Я не люблю команду if; предпочитаю pipelines с командой [. Дело вкуса.
-lt означает "less than" т.е. <. Имеется полный комплект операторов
сравнения чисел, которые можно группировать логическими операторами
-a (and) и -o (or). В обшем, man test.