Mr_Franke
@Mr_Franke
Front-end developer

Bash — как преобразовать строку в число?

Добрый день! Необходимо одной командой запускать разные скрипты в зависимости от времени суток.
Для этого я получаю часы с помощью date
hour = date +%H
А потом пытаюсь сравнить с числом
if [  hour < 20 ]; then echo 'true'; else echo 'false'; fi


Но т.к. hour это строка, то сравнение происходит неверно.
Подскажите, как можно правильно преобразовать число в строку? Или как можно решить эту проблему по-другому?
  • Вопрос задан
  • 18561 просмотр
Пригласить эксперта
Ответы на вопрос 2
@inkvizitor68sl
Linux-сисадмин с 8 летним стажем.
В баше нет понятия строк/чисел. Если внутри число - то оно распарсит это число.

Ну и в примере из решения лучше писать ${todate}. И вообще всегда переменные лучше писать в ${} - это читаемо и спасает от кучи ошибок.
Ответ написан
Комментировать
@ilya200
hour=$(date +%H)

if (( $hour < 20 )); then echo 'true'; else echo 'false'; fi
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы