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

45

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

    
задан Avinash Raj 13.12.2013 в 17:52
источник

10 ответов

93

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

curl wttr.in/your_location

Например, для Тегерана:

curl wttr.in/tehran

Что дает вам:

    
ответ дан K-FIVE 23.02.2016 в 15:16
источник
15

Найдите свой город на Ссылка и замените URL-адрес в следующем скрипте URL-адресом вашего города:

#!/bin/sh

URL='http://www.accuweather.com/en/de/berlin/10178/weather-forecast/178087'

wget -q -O- "$URL" | awk -F\' '/acm_RecentLocationsCarousel\.push/{print ": "", ""°" }'| head -1

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

Berlin, Germany: Foggy, 1°
    
ответ дан Florian Diesch 13.12.2013 в 18:28
12

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

Ссылка

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

    
ответ дан jojo 04.06.2015 в 21:19
11

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

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

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

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

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

, тогда введите

weather <location name>

например

[email protected]:~$ weather guntur
December 14, 2013: Clear. High 31&amp;deg;C (87&amp;deg;F). Winds 0 kph North
December 15, 2013: Clear. High 29&amp;deg;C (84&amp;deg;F). Winds 10 kph NNW
December 16, 2013: Clear. High 31&amp;deg;C (87&amp;deg;F). Winds 10 kph North
December 17, 2013: Clear. High 29&amp;deg;C (84&amp;deg;F). Winds 7 kph ENE
December 18, 2013: Scattered Clouds. High 29&amp;deg;C (84&amp;deg;F). Winds 3 kph ENE
December 19, 2013: Scattered Clouds. High 29&amp;deg;C (84&amp;deg;F). Winds 3 kph ENE
    
ответ дан Ten-Coin 15.12.2013 в 06:04
4

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

telnet rainmaker.wunderground.com
    
ответ дан SQuirel 26.02.2016 в 03:44
3

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

sudo apt-get install weather-util

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

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

    
ответ дан Mitch 13.12.2013 в 17:57
3

ansiweather

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

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

Ссылка

    
ответ дан user782355 13.01.2018 в 15:15
1

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

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

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

Затем сохраните & amp; закройте файл .bashrc. теперь введите bash для обновления файла.

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

    
ответ дан sergkog 31.10.2016 в 05:38
1

Для еще более короткого погодного выхода Ссылка содержит данные о погоде от Yahoo! в текстовом и XML-формате.

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

Я написал сценарий q & amp; d weather-fetch, который получает текущую температуру и описание погоды, а затем сохраняет символ юникода, соответствующий описанию, и выводит его как

☂ 6 ° C

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

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

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

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

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

#!/bin/sh
#☁☂☔❄❅❆☃ ☀☁☂⚡⚐☼

# write xml to variable
w_xml=$(curl --silent "http://weather.tuxnet24.de/?id=20066057&mode=xml");
# get fields from xml via xmllint | xargs for trimming
# weather description
w_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_txt
if   [ "$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 symbol
else w_sym=$w_txt; 
fi
# output <symbol><space><temp-in-°C>
echo "$w_sym"" ""$w_tpc";
    
ответ дан kai-dj 19.04.2017 в 17:22
0

Несмотря на то, что решение curl curl довольно хорошее, мне нужно было что-то более информативное, поэтому я создал простой скрипт bash, который выводит информацию на следующие 4 часа с сайта weather.com. Как и в предыдущем примере, вам нужно изменить ссылку для своего местоположения.

Example output:
$ ./getWeather.sh
Temperature for 1 AM : 65&deg;F and outside should be: Partly - Cloudy FEELS LIKE:   65&deg;
Temperature for 2 AM : 65deg;F and outside should be: Partly - Cloudy FEELS LIKE: 65deg;
Temperature for 3 AM : 63deg; and outside should be: Partly - Cloudy FEELS LIKE: 63deg;
Temperature for 4 AM : 62deg; and should be: Mostly - Clear FEELS LIKE: 62deg;

Полный скрипт находится по адресу: Ссылка     

ответ дан wozoopa 02.07.2014 в 09:02