Thank you for reading this post, don't forget to subscribe!
Главная задача этого скрипта — выводить в консоль информацию о погоде в текстовом режиме. Чем этот скрипт может быть еще полезен? Тем что результат его работы можно использовать для отправки себе в качестве SMS, по электронной почте или использовать для отображения на рабочем столе при помощи conky.
Для настройки скрипта потребуется адрес страницы, на которой находятся данные о погоде в соответствующем городе. например Санкт-Петербург. Вы можете свой URL найти просто скопировав из браузера адрес страницы и вставив его в скрипт.
1 2 3 4 5 6 7 8 9 10 11 |
#!/bin/bash CITY_URL="https://www.gismeteo.ru/city/daily/4079/" curl $CITY_URL 2>/dev/null \ | sed -nre '/section higher/,/мм рт. ст./p' \ | sed -r '/section higher|cloudness|wicon wind|crumb|scity|\/div|value m_temp f|m_wind mih|m_wind kmh|png|\/dl|class="temp|wicon barp|dt/d' \ | sed -r 's/(.*)class="type(.*)>(.*)<\/h2>/Город: \3/' \ | sed -r 's/(.*)<dd(.*)td>(.*)<\/td(.*)\/dd>/Погода: \3/' \ | sed -r 's/(.*)<dd class=(.*)>(.*)<span class="meas(.*)span><\/dd>/Температура воздуха: \3 C/' \ | sed -r 's/(.*)value m_wind ms(.*)>(.*)<span class="unit">(.*)<\/span><\/dd>/Ветер: \3 \4/' \ | sed -r 's/(.*)value m_press torr(.*)>(.*)<(.*)>(.*)<\/span><\/dd>/Давление: \3 \5/' |
Если не совсем понятно, немного поясню, что происходит. Скачиваем curl’ом страничку, выводим ее в стандартный потов вывода, а ошибки в /dev/null. Затем удаляем все ненужные строки, оставляем только те, которые содержатся между строкой с подстрокой «section higher» и «мм рт. ст.» включительно. Таким образом удалится информация о температуре воды, но это в моем случае не страшно, потому что Питер не самый курортный город, и о влажности воздуха, что тоже не страшно, потому что влажность обычно не самая низкая. Затем из оставшихся строк снова удаляем ненужные, достаем название города, состояние атмосферы (ясно, пасмурно, облачно), температуру воздуха, скорость ветра и атмосферное давление.
И, собственно, всё. После запуска скрипта получаем такой вот вывод:
1 2 3 4 5 6 |
$ ./gm.sh Город: Санкт-Петербург Погода: Пасмурно Температура воздуха: +15 C Ветер: 2 м/с Давление: 766 мм рт. ст. |