ฉันต้องการค้นหาสภาพอากาศปัจจุบันของเมืองหนึ่ง ๆ หรือตำแหน่งของฉันจากสถานี มีแอพพยากรณ์อากาศแบบบรรทัดคำสั่งหรือไม่
ฉันต้องการค้นหาสภาพอากาศปัจจุบันของเมืองหนึ่ง ๆ หรือตำแหน่งของฉันจากสถานี มีแอพพยากรณ์อากาศแบบบรรทัดคำสั่งหรือไม่
คำตอบ:
เพียงป้อนข้อมูลต่อไปนี้ในเทอร์มินัล:
curl wttr.in
/etc/timezone
และจะได้รับตำแหน่งของคุณจาก curl wttr.in/your_location
มิฉะนั้น ตัวอย่างเช่นสำหรับเตหะราน:
curl wttr.in/tehran
ซึ่งให้คุณ:
คุณยังสามารถเปรียบเทียบสองเมือง:
diff -Naur <(curl -s http://wttr.in/london ) <(curl -s http://wttr.in/new-york )
devs
เรา
ค้นหาเมืองของคุณที่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
ตัวอย่างผลลัพธ์:
Berlin, Germany: Foggy, 1°
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?
awk
'
API ใช้ตัวเลข 2 ตัวอันแรกคือpostleitzahl
หรือรหัสไปรษณีย์ ที่สองน่าจะเป็นหมายเลขรหัส api
ฉันมีอีกวิธีหนึ่ง
เปิด.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 guntur
December 14, 2013: Clear. High 31&deg;C (87&deg;F). Winds 0 kph North
December 15, 2013: Clear. High 29&deg;C (84&deg;F). Winds 10 kph NNW
December 16, 2013: Clear. High 31&deg;C (87&deg;F). Winds 10 kph North
December 17, 2013: Clear. High 29&deg;C (84&deg;F). Winds 7 kph ENE
December 18, 2013: Scattered Clouds. High 29&deg;C (84&deg;F). Winds 3 kph ENE
December 19, 2013: Scattered Clouds. High 29&deg;C (84&deg;F). Winds 3 kph ENE
YOUZIPORLOCATION
ด้วย$1
และผ่าน20001
(Washington, DC รหัสไปรษณีย์) ผมได้รับสายที่มีลักษณะที่ยังไม่ฟอร์แมตเช่นToday: Mostly sunny and breezy. Highs in the upper 30s. Northwest winds 20 to 25 mph with gusts up to 45 mph.
เมื่อฉันใช้ฉันได้รับการส่งออกตาราง"washington.dc"
May 4, 2015: Clear. High 32&deg;C (89&deg;F). Winds 43 kph East
ความคิดใดว่าทำไมแตกต่างกันอย่างไร
นี่คืออรรถประโยชน์บรรทัดคำสั่งกึ่งกราฟิกที่ดีเขียนใน Go:
https://github.com/schachmat/wego/
คุณจะต้องติดตั้ง Go และตั้งค่า API บางอย่าง แต่มีคำแนะนำอยู่ นี่คือตัวอย่างรูป:
curl wttr.in
เพียงพอแล้ว
curl wttr.in/Helsinki?m
ลองใช้ดู
telnet rainmaker.wunderground.com
ก่อนอื่นคุณต้องติดตั้งแพ็คเกจ weather-util เพื่อทำเช่นนั้นเพียงแค่กดCtrl+ Alt+ Tบนคีย์บอร์ดของคุณเพื่อเปิด Terminal เมื่อเปิดขึ้นให้เรียกใช้คำสั่งด้านล่าง:
sudo apt-get install weather-util
คุณจะต้องของคุณรหัสสภาพอากาศในท้องถิ่น
weather -i <code>
หลังจากการติดตั้งคุณสามารถเรียกใช้ รหัสที่คุณได้รับจากลิงค์ด้านบน สำหรับรายการตัวเลือกที่มีคุณสามารถเรียกใช้weather
ข้อมูลสภาพอากาศ
Last updated Dec 11, 2013 - 07:00 AM EST / 2013.12.11 1200 UTC Temperature: 86 F (30 C)
ว่าไม่มีวิธีใดที่จะรู้สภาพอากาศในปัจจุบัน
weather YOURLOCATIONNAME
มันค้นหาตำแหน่งของคุณแล้วและอาจให้ผลลัพธ์ที่หลากหลาย จากสิ่งเหล่านี้คุณสามารถอ่านตัวระบุสถานีซึ่งคุณสามารถใช้เป็นอาร์กิวเมนต์เพื่อดึงข้อมูลสภาพอากาศของคุณได้จาก
weather LAX
(ซึ่งควรแสดงสภาพอากาศสำหรับสนามบินนานาชาติลอสแองเจลิส) แสดงข้อผิดพลาด 404 สำหรับweather.noaa.gov/pub/data/observations/metar/decoded/KNKX.TXT
http://weather.noaa.gov/pub/data
http://tgftp.nws.noaa.gov/data
UPDATE: ดูเหมือนว่าพวกเขาได้รับการแก้ไขแล้วในรุ่น 2.1 ซึ่งคุณสามารถได้รับจากเว็บไซต์ของโครงการ
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 ☔
นอกจากนี้ยังมีโปรแกรมที่ติดตั้งมากับอูบุนตูที่เรียกว่า inxi จะให้สถิติทุกประเภทในคอมพิวเตอร์ของคุณ
คำสั่ง: inxi - ช่วยเหลือ
คำสั่ง: 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
sudo apt install inxi
inxi
พร้อมใช้งาน แต่คุณต้องเปิดใช้งานที่เก็บจักรวาลก่อน
คุณสามารถเปรียบเทียบเมืองโดยใช้:
diff -Naur <(curl -s http://wttr.in/london ) <(curl -s http://wttr.in/new-york )
ดังที่แสดงในคำตอบที่ได้รับคะแนนสูงสุด wttr.in
ยังทำให้หน้าจอ "สแปลช" ที่ยอดเยี่ยมทุกครั้งที่คุณเปิดเครื่อง ทำได้โดยเพิ่มลงใน~/.bashrc
ไฟล์ของคุณ ฉันได้ทำเช่นนั้นแล้วเพื่อรวมข้อมูลสภาพอากาศวันที่เวลาและการจัดจำหน่ายตามรายละเอียดในคำตอบนี้: ฉันจะรับหน้าจอเริ่มต้นของเทอร์มินัลได้อย่างไร
ขออภัยฉันอยู่ใน Ubuntu ใน Windows 10 WSL สำหรับการอัปเดต Spring 2018 เมื่อฉันจับภาพนี้ สัญญาฉันจะบูตกลับเข้า Ubuntu ใน Linux เร็ว ๆ
เพื่อให้ได้สภาพอากาศที่สั้นลงhttp://weather.tuxnet24.deให้ข้อมูลสภาพอากาศจาก Yahoo! ในรูปแบบข้อความและ xml
filds จาก XML นั้นสามารถรับได้ด้วยตัวแยกวิเคราะห์ XML เช่น xmllint เช่น
ฉันเขียนสคริปต์การดึงข้อมูลสภาพอากาศถามซึ่งได้รับอุณหภูมิปัจจุบันและคำอธิบายสภาพอากาศจากนั้นเก็บสัญลักษณ์ยูนิโค้ดที่สอดคล้องกับคำอธิบายและผลลัพธ์เช่น
☂ 6 ° c
ฉันอัปเดตเป็นประจำผ่าน cronjob แล้วใช้ผลลัพธ์ในสถานะถาดของฉัน
รับ ID ของคุณที่ yahoocom / ข่าว / สภาพอากาศ เปลี่ยนตำแหน่งไปยังตำแหน่งที่คุณต้องการและค้นหา ID ใน 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 -Ls "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 (°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";
#!/usr/bin/env bash
ซ่อมให้ฉัน Ubuntu 18.04
ฉันมีอีกวิธีหนึ่ง
เปิดไฟล์. 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; }
บันทึกและปิด.bashrc
ไฟล์ของคุณและเรียกใช้คำสั่งต่อไปนี้เพื่ออัปเดต bash:
. .bashrc
จากนั้นพิมพ์ตัวพิมพ์W
ใหญ่
.bashrc
ไฟล์ของคุณ คุณสามารถเรียกใช้: source .bashrc
หรือคุณสามารถเรียกใช้สิ่งนี้แทน:. .bashrc
แม้ว่าวิธีแก้ปัญหาของ accuweather นั้นค่อนข้างดี แต่ฉันต้องการข้อมูลมากกว่านี้ดังนั้นฉันจึงสร้างสคริปต์ทุบตีเรียบง่ายที่ดึงข้อมูลสำหรับ 4 ชั่วโมงถัดไปจากเว็บไซต์ weather.com ดังตัวอย่างก่อนหน้านี้คุณต้องแก้ไขลิงค์สำหรับตำแหน่งของคุณ
Example output:
$ ./getWeather.sh
Temperature for 1 AM : 65°F and outside should be: Partly - Cloudy FEELS LIKE: 65°
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-information-from-command-line-for-next-4-hrs
finger city_name@graph.no
$ finger cologne@graph.no
-= Meteogram for germany/north_rhine-westphalia/cologne =-
'C Rain
16
15 ^^^
14 ======^^^ ^^^
13 === ^^^===^^^===
12 =========
11 === ====--
10 ====== ---
9=====| --- 3 mm
8 | | 2 mm
7 | | | | | | | | | | | | | | 1 mm
_08_09_10_11_12_13_14_15_16_17_18 19 20 21 22 23 00 01 02 03 04 05 Hour
SE SE SE SE SE SW SW W W W W SW W W W W W NW NW NW N N Wind dir.
5 5 5 5 4 4 5 6 6 6 5 5 5 4 4 5 5 5 4 3 3 3 Wind(mps)
Legend left axis: - Sunny ^ Scattered = Clouded =V= Thunder # Fog
Legend right axis: | Rain ! Sleet * Snow
[Weather forecast from yr.no, delivered by the Norwegian Meteorological Institute and the NRK.]
นี่คือวิธีการใช้งาน:
$ finger help@graph.no
yr.no is having technical problems, or you specified an unknown location.
Usage:
* finger <city name>@graph.no (world weather forecast, no spaces)
Example: finger newyork@graph.no
Advanced usage:
* finger o:<city name>@graph.no (a one-line forecast)
Example: finger o:newyork@graph.no
* finger ^<city name>@graph.no (Imperial units)
Example: finger ^newyork@graph.no
* finger <city name>+5@graph.no (forecast from 5 hrs ahead in time (max:26))
Example: finger northpole+5@graph.no
* finger <city name>~160@graph.no (set screen width)
Example: finger southpole~160@graph.no
* finger <city name>%2@graph.no (forecast for every second hour [Norway])
Example: finger oslo%2@graph.no
* finger <post code>@graph.no (norwegian weather forecast)
Example: finger 0458@graph.no
Other:
* finger news@graph.no (latest headlines from NRK)
* finger time@graph.no (server local time)
* finger date@graph.no (server local date)
* finger about@graph.no (contact information)
International names comes from http://fil.nrk.no/yr/viktigestader/verda.txt.
เรื่องราวที่อยู่เบื้องหลังนี้จากนักพัฒนา