Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: bash и переменные  (Прочитано 538 раз)

0 Пользователей и 1 Гость просматривают эту тему.

aux314

  • Автор темы
  • Гость
bash и переменные
« : 18 Января 2012, 20:44:05 »
нужна помощь
#!/bin/bash

Tmin=20.0;

while [ true ]; do
        Tcurrent=$(digitemp_DS9097 -t 0 -q -o"%.1C");
        echo $Tcurrent;
        sleep 2;
done
выводит значение в виде "22.1"
как перевести в Tcurrent в цифры и сравнить Tmin с Tcurrent, что больше или меньше?
« Последнее редактирование: 18 Января 2012, 20:45:55 от aux314 »

andrey_p

  • Автор темы
  • Гость
Re: bash и переменные
« Ответ #1 : 19 Января 2012, 06:55:10 »
bash не умеет работать с плавающими числами, поэтому надо использовать какой-то внешний инструмент. Традиционно используют bc:
% echo 20.0 "<" 20.1 | bc
1
% echo 20.0 ">" 20.1 | bc
0
Конвертация в числа не нужна, если коротко unix утилиты это сами делают, когда необходимо. А в оболочке все типы данных - строки, кавычки не служат признаком строкового литерала, а нужны для экранирования служебных символов оболочки.
« Последнее редактирование: 19 Января 2012, 07:00:16 от andrey_p »

aux314

  • Автор темы
  • Гость
Re: bash и переменные
« Ответ #2 : 19 Января 2012, 10:06:15 »
andrey_p,
большое спасибо

 

Страница сгенерирована за 0.053 секунд. Запросов: 23.