Погода с терминала

Я хочу найти текущий погода определенного города или моего местоположения с терминала. Есть ли какое-нибудь приложение погоды из командной строки?

Просто введите следующее в терминале:

curl wttr.in

И получит ваше местоположение от /etc/timezone. В противном случае curl wttr.in/your_location. Например, для Тегерана:

curl wttr.in/tehran

Что дает вам:

Sample output

Вы также можете сравнить два города:

diff -Naur <(curl -s http://wttr.in/london ) <(curl -s http://wttr.in/new-york )

Исходный код разработчик имеется в наличии на Github.

Найдите свой город по адресу http://www.accuweather.com и замените URL-адрес в следующем скрипте URL-адресом вашего города:

#!/bin/shURL='http://www.accuweather.com/en/de/berlin/10178/weather-forecast/178087'wget -q -O- "$URL" | awk -F\' '/acm_RecentLocationsCarousel\.push/{print $2": "$16", "$12"°" }'| head -1

Пример вывода:

Berlin, Germany: Foggy, 1°

Вот отличная полуграфическая утилита командной строки, написанная на Go:

https://github.com/schachmat/wego/

Вам нужно будет установить Go и настроить некоторые функции API, но инструкции есть. Вот примерный рисунок:

enter image description here

У меня есть еще один способ.

Открой свой .bashrc файл, а затем вставьте этот код внизу

weather(){ curl -s "http://api.wunderground.com/auto/wui/geo/ForecastXML/index.xml?query=${@:-<YOURZIPORLOCATION>}"|perl -ne '/<title>([^<]+)/&&printf "%s: ",$1;/<fcttext>([^<]+)/&&print $1,"\n"';}

Затем сохраните и закройте свой .bashrc файл.

теперь введите bash чтобы обновить файл.

затем введите

weather <location name>

например

august@august-OEM:~$ weather gunturDecember 14, 2013: Clear. High 31&amp;deg;C (87&amp;deg;F). Winds 0 kph NorthDecember 15, 2013: Clear. High 29&amp;deg;C (84&amp;deg;F). Winds 10 kph NNWDecember 16, 2013: Clear. High 31&amp;deg;C (87&amp;deg;F). Winds 10 kph NorthDecember 17, 2013: Clear. High 29&amp;deg;C (84&amp;deg;F). Winds 7 kph ENEDecember 18, 2013: Scattered Clouds. High 29&amp;deg;C (84&amp;deg;F). Winds 3 kph ENEDecember 19, 2013: Scattered Clouds. High 29&amp;deg;C (84&amp;deg;F). Winds 3 kph ENE

ansiweather

AnsiWeather - это сценарий оболочки для отображения текущих погодных условий в вашем терминале с поддержкой цветов ANSI и символов Unicode. Данные о погоде поступают из бесплатного погодного API OpenWeatherMap.

sudo apt-get install ansiweatheransiweather -l London,GB -f 3London forecast => Sat Jan 13: 7/2 °C ☔ - Sun Jan 14: 4/1 °C ☔ - Mon Jan 15: 9/6 °C ☔

https://github.com/fcambus/ansiweather

Сначала вам нужно установить пакет weather-util, для этого просто нажмите Ctrl+Alt+T на клавиатуре, чтобы открыть терминал. Когда он откроется, выполните приведенные ниже команды:

sudo apt-get install weather-util

Вам понадобится ваш местный погодный код.

После установки вы можете запустить weather -i <code>. Код, который вы получите по ссылке выше. Для получения списка доступных опций вы можете запустить weatherИнформация о погоде

Попробуйте использовать

telnet rainmaker.wunderground.com

кроме того, программа, которая поставляется с предустановленной ubuntu под названием inxi, предоставит вам все виды статистики на вашем компьютере и выведет прогноз погоды.

команда: inxi --help

команда: inxi -w

        Conditions: 82 F (28 C) - Clear Time: May 13, 10:52 AM CDT

команда: inxi -wxxx

     Conditions: 82 F (28 C) - Clear Wind: From the SW at 13 MPH Humidity: 60%       Pressure: 29.99 in (1016 mb) Heat Index: 84 F (29 C)       Location: city (USA) Altitude: 185 m       Time: May 13, 10:52 AM CDT (America/Chicago) Observation Time: May 13, 9:54 AM CDT

У меня есть еще один способ.

Откройте свой файл .bashrc, а затем вставьте этот код внизу

test -f ~/.wttr.in || curl -sk wttr.in -o ~/.wttr.infind ~ -maxdepth 1 -name .wttr.in -cmin +5 -exec curl -sk wttr.in -o ~/.wttr.in \;head -7 ~/.wttr.in | tail -5W(){ find ~ -maxdepth 1 -name .wttr.in -cmin +5 -exec curl -sk wttr.in -o ~/.wttr.in \;; head -27 ~/.wttr.in; }

Сохраните и закройте свой .bashrc файл и выполните следующую команду для обновления bash:

. .bashrc 

затем введите W верхний регистр

Для еще более коротких погодных условий http://weather.tuxnet24.de предоставляет данные о погоде от Yahoo! в текстовом и xml-формате.

Затем файлы из XML могут быть получены с помощью синтаксического анализатора XML, такого как xmllint, т.е..

Я написал сценарий выборки погоды для вопросов и ответов, который получает текущую температуру и описание погоды, затем сохраняет символ юникода, соответствующий описанию, и выводит его следующим образом

≈ 6°C

Я регулярно обновляюсь через cronjob, а затем использую выходные данные в своем статусе в трее.

Получите свой идентификатор на сайте yahoocom/новости/погода. Измените местоположение на желаемое местоположение и найдите идентификатор в URL (например, если URL-адрес yahoocom/news/weather/germany/north-rhine-westphalia/bielefeld-20066057, идентификатор будет 20066057).

XML содержит дополнительные поля, например, данные прогноза, ветер и т.д. – вы тоже можете разобрать их, если хотите.

К сожалению, некоторые погодные символы не представлены в Ubuntufont ... не стесняйтесь вносить изменения.

Вот мой скрипт (замените 20066057 на ваш идентификатор, если вы не живете в Билефельде) - зависит от bash, curl и xmllint.

#!/bin/sh#☁☂☔❄❅❆☃ ☀☁☂⚡⚐☼# write xml to variablew_xml=$(curl -Ls "http://weather.tuxnet24.de/?id=20066057&mode=xml");# get fields from xml via xmllint | xargs for trimming# weather descriptionw_txt=$(xmllint --xpath "string(//current_text)" - <<<"$w_xml" | xargs);# temperature | remove spaces from text (&#176;C prepended by space)w_tpc=$(xmllint --xpath "string(//current_temp)"  - <<<"$w_xml" | xargs); w_tpc=${w_tpc//[[:blank:]]/};# further fields not used atm# w_tph=$(xmllint --xpath "string(//current_temp_high)"  - <<<"$w_xml" | xargs);# w_tpl=$(xmllint --xpath "string(//current_temp_low)"  - <<<"$w_xml" | xargs);# set $w_sym according to $w_txtif   [ "$w_txt" == "Sunny" ]; then w_sym="☼";elif [ "$w_txt" == "Mostly Sunny" ]; then w_sym="☼";elif [ "$w_txt" == "Showers" ]; then w_sym="☂";elif [ "$w_txt" == "Clear" ]; then w_sym="☾";elif [ "$w_txt" == "Thunderstorms" ]; then w_sym="⚡";elif [ "$w_txt" == "Scattered Thunderstorms" ]; then w_sym="☔";elif [ "$w_txt" == "Isolated Thundershovers" ]; then w_sym="☔";elif [ "$w_txt" == "Cloudy" ]; then w_sym="☁";elif [ "$w_txt" == "Mostly Cloudy" ]; then w_sym="☁";elif [ "$w_txt" == "Partly Cloudy" ]; then w_sym="☼☁";elif [ "$w_txt" == "Breezy" ]; then w_sym="⚐";# if unknown text, set text instead of symbolelse w_sym=$w_txt; fi# output <symbol><space><temp-in-°C>echo "$w_sym"" ""$w_tpc";