在Linux字符界面中獲取天氣預(yù)報(bào)
目標(biāo):使用 Linux 命令行顯示天氣預(yù)報(bào)。
發(fā)行版:所有 Linux 發(fā)行版。
要求:能連上因特網(wǎng)的 Linux
難度:容易
約定:
#- 需要使用 root 權(quán)限來執(zhí)行指定命令,可以直接使用 root 用戶來執(zhí)行也可以使用sudo命令$- 可以使用普通用戶來執(zhí)行指定命令
簡介
無需打開網(wǎng)頁瀏覽器就能直接從終端獲取最新的天氣預(yù)報(bào)那該多方便啊,對吧?你還能把它寫成腳本,或者設(shè)置定義定時(shí)任務(wù)。
http://wttr.in 是一個(gè)允許你搜索世界各地天氣預(yù)報(bào)的網(wǎng)站,而且它的是以 ASCII 字符的形式來顯示結(jié)果的。通過使用 cURL 訪問 http://wttr.in,就能直接在終端顯示查詢結(jié)果了。
獲取所在地的天氣

Local weather from wttr.in
要抓取所在地的天氣情況非常簡單。wttr.in 會(huì)自動(dòng)根據(jù) IP 地址來探測你的所在地。除非你用了 VPN,否則它的精度還不錯(cuò)。
$ curl wttr.in
獲取指定城市的天氣

Weather by city from wttr.in
你可以通過在 wttr.in 后加上斜杠和城市名稱的方式來獲得其他城市的天氣情況。不過要把名字中的空格替換成 +。
$ curl wttr.in/New+York
你也可以以 Unix 時(shí)區(qū)的形式來填寫城市名稱。
$ curl wttr.in/New_York
不要直接使用空格,否則會(huì)出現(xiàn)奇怪而不準(zhǔn)確的結(jié)果。
獲取機(jī)場天氣

Weather by airport from wttr.in
若你對地區(qū)的三位機(jī)場代號(hào)很熟悉,你也可以使用機(jī)場代號(hào)來查詢天氣。一般來說使用機(jī)場要比使用城市更貼近你,而且更精確一些。
$ curl wttr.in/JFK
猜測所在地

Weather by landmark from wttr.in
通過使用 ~ 字符,你可以讓 wttr.in 通過地標(biāo)來猜測天氣情況。
$ curl wttr.in/~Statue+Of+Liberty
域名所在地的天氣

Weather by domain name from wttr.in
你想不想知道 LinuxConfig 托管地的天氣?現(xiàn)在有一個(gè)方法可以知道!wttr.in 可以通過域名獲取天氣。是的,這個(gè)功能可能不那么實(shí)用,但這很有趣啊。
$ curl wttr.in/@linuxconfig.org
更改溫度單位

Change unit system in wttr.in
默認(rèn)情況下,wttr.in 會(huì)根據(jù)你的實(shí)際地址來決定顯示哪種溫度單位(C 還是 F)。基本上,在美國,使用的是華氏度,而其他地方顯示的是攝氏度。你可以指定顯示的溫度單位,在 URL 后添加 ?u 會(huì)顯示華氏度,而添加 ?m 會(huì)顯示攝氏度。
$ curl wttr.in/New_York?m$ curl wttr.in/Toronto?u
在 ZSH 上有一個(gè)很奇怪的 bug,會(huì)使得這兩條語句不能正常工作,如果你需要更換單位,恐怕需要改成使用 Bash 了。
總結(jié)
你可以很方便地在腳本,定時(shí)任務(wù),甚至 MOTD(LCTT 譯注:Message Of The Day - 每日消息)中訪問 wttr.in。當(dāng)然,你完全沒有必要這么做。當(dāng)你需要查看天氣預(yù)報(bào)的時(shí)候只需要訪問一下這個(gè)超棒的網(wǎng)站就行了。
























