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

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

1
задан 13 January 2018 в 18:58

11 ответов

Найдите свой город по адресу http://www.accuweather.com и замените 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 $2": "$16", "$12"°" }'| head -1

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

[ f2]
15
ответ дан 24 May 2018 в 14:09
  • 1
    Но как мне изменить его на Celcius, хотя – dat tutbrus 2 August 2017 в 18:12
  • 2
    В исходном html я вижу acm_RecentLocationsCarousel.push({name:"Berlin, Germany", daypart:'day', href:'/en/de/berlin/10178/weather-forecast/178087', icon:'i-6-l', bg:'c', temp:'0', realfeel:'-6', text:"Mostly cloudy"});. Используя ваш код, разделитель поля awk имеет значение '' (пробел). Является ли $12 (температура) 12-й колонной? – Timo 10 December 2017 в 12:41
  • 3
    Моя ошибка, разделитель awk - '. Api использует 2 номера, первый - postleitzahl или zipcode. Второй, по-видимому, номер кода api – Timo 10 December 2017 в 12:51

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

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

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

12
ответ дан 24 May 2018 в 14:09
  • 1
    Сейчас это публично размещено - с IP-адресом для отображения области. Попробуйте: curl -4 wttr.in – jschrab 25 February 2016 в 01:56
  • 2
    @jschrab: И вам фактически не нужно -4. curl wttr.in достаточно – Igor Chubin 25 February 2016 в 02:25

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

Откройте файл .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"';}

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

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

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

weather <location name>

например

[ f3]
11
ответ дан 24 May 2018 в 14:09
  • 1
    Хороший прогноз погоды. +1 от меня. – souravc 15 December 2013 в 11:48
  • 2
    Это больше не работает, последние даты, которые он показывает, - с мая 2015 года (по крайней мере, в Кейптауне, Южная Африка). Более тщательное рассмотрение вывода xml показывает, что родитель txt_forecast не обновлялся с мая 2015 года, в то время как элемент simpleforecast, по-видимому, имеет самые последние данные. – Zahir J 28 December 2016 в 02:12
  • 3
    Я обновлю свой ответ – Ten-Coin 28 December 2016 в 06:06
  • 4
    Замените YOUZIPORLOCATION на $ 1, если вы хотите, чтобы погода & lt; название местоположения & gt; работать – Ed Neville 18 January 2018 в 00:23

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

telnet rainmaker.wunderground.com
4
ответ дан 24 May 2018 в 14:09

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

sudo apt-get install weather-util

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

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

3
ответ дан 24 May 2018 в 14:09
  • 1
    он показывает Last updated Dec 11, 2013 - 07:00 AM EST / 2013.12.11 1200 UTC Temperature: 86 F (30 C). Нет ли способа узнать текущую погоду. – Avinash Raj 13 December 2013 в 23:13
  • 2
    В зависимости от вашего местоположения, которое может быть текущей информацией, доступной. – Mitch♦ 13 December 2013 в 23:15
  • 3
    Я просто попробовал это и обнаружил, что теперь его проще использовать: weather YOURLOCATIONNAME Затем он ищет ваше местоположение и дает несколько результатов. Из них вы можете прочитать идентификатор станции, который вы можете использовать в качестве аргумента для получения информации о погоде от – Nicolas 23 March 2016 в 03:05
  • 4
    Похоже, что сервис, от которого он зависит, был прекращен. Я только что установил версию 2.0, а weather LAX (которая должна показывать погоду для Международного аэропорта Лос-Анджелеса) показывает ошибку 404 для weather.noaa.gov/pub/data/observations/metar/decoded/KNKX.TXT [ ! d0] – Keith Thompson 27 August 2016 в 23:08
  • 5
    Этот конкретный файл данных переместился из здесь в здесь . Должно быть возможно обновить файлы данных, изменив каждое вхождение http://weather.noaa.gov/pub/data на http://tgftp.nws.noaa.gov/data. UPDATE: похоже, что они уже исправили его в версии 2.1, которую вы можете получить из сайта проекта . – Keith Thompson 31 January 2017 в 07:08

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 ☔

https://github.com/fcambus/ansiweather

3
ответ дан 24 May 2018 в 14:09

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

Откройте ваш .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 верхний регистр

1
ответ дан 24 May 2018 в 14:09

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

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

Я написал сценарий 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 ... не стесняйтесь настраивать 10] Вот мой сценарий (замените 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";
1
ответ дан 24 May 2018 в 14:09

Несмотря на то, что решение для скручивания accuweather довольно хорошее, мне нужно было что-то более информативное, поэтому я создал простой скрипт 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;

Полный скрипт находится по адресу: https://sites.google.com/site/wozoopalinux/home/wzbash001/get-weather -информация-из-команды-линия для-следующей-4-ч

0
ответ дан 24 May 2018 в 14:09

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

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

2]: 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
0
ответ дан 24 May 2018 в 14:09

Вы можете сравнивать города, используя:

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

, как показано в ответе на верхний голос. wttr.in также делает большой экран «всплеска» каждый раз, когда вы открываете терминал. Сделайте это, добавив его в свой файл ~/.bashrc. Я сделал это, чтобы включить информацию о погоде, дате, времени и распределении, как подробно описано в этом ответе: Как я могу получить этот экран заставки терминала?

Как я могу получить этот экран заставки терминала? [ ! d2]

Извините, что я был в Ubuntu в Windows 10 WSL для обновлений Spring 2018, когда я захватил это изображение. Обещаю, что скоро вернусь в Ubuntu в Linux.

0
ответ дан 24 May 2018 в 14:09

Другие вопросы по тегам:

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