在Linux字符界面中獲取天氣預(yù)報(bào)
目標(biāo):使用 Linux 命令行顯示天氣預(yù)報(bào)。
發(fā)行版:所有 Linux 發(fā)行版。
要求:能連上因特網(wǎng)的 Linux
難度:容易
約定:
#
- 需要使用 root 權(quán)限來(lái)執(zhí)行指定命令,可以直接使用 root 用戶(hù)來(lái)執(zhí)行也可以使用sudo
命令$
- 可以使用普通用戶(hù)來(lái)執(zhí)行指定命令
簡(jiǎn)介
無(wú)需打開(kāi)網(wǎng)頁(yè)瀏覽器就能直接從終端獲取最新的天氣預(yù)報(bào)那該多方便啊,對(duì)吧?你還能把它寫(xiě)成腳本,或者設(shè)置定義定時(shí)任務(wù)。
http://wttr.in
是一個(gè)允許你搜索世界各地天氣預(yù)報(bào)的網(wǎng)站,而且它的是以 ASCII 字符的形式來(lái)顯示結(jié)果的。通過(guò)使用 cURL
訪問(wèn) http://wttr.in
,就能直接在終端顯示查詢(xún)結(jié)果了。
獲取所在地的天氣
Local weather from wttr.in
要抓取所在地的天氣情況非常簡(jiǎn)單。wttr.in
會(huì)自動(dòng)根據(jù) IP 地址來(lái)探測(cè)你的所在地。除非你用了 VPN,否則它的精度還不錯(cuò)。
$ curl wttr.in
獲取指定城市的天氣
Weather by city from wttr.in
你可以通過(guò)在 wttr.in
后加上斜杠和城市名稱(chēng)的方式來(lái)獲得其他城市的天氣情況。不過(guò)要把名字中的空格替換成 +
。
$ curl wttr.in/New+York
你也可以以 Unix 時(shí)區(qū)的形式來(lái)填寫(xiě)城市名稱(chēng)。
$ curl wttr.in/New_York
不要直接使用空格,否則會(huì)出現(xiàn)奇怪而不準(zhǔn)確的結(jié)果。
獲取機(jī)場(chǎng)天氣
Weather by airport from wttr.in
若你對(duì)地區(qū)的三位機(jī)場(chǎng)代號(hào)很熟悉,你也可以使用機(jī)場(chǎng)代號(hào)來(lái)查詢(xún)天氣。一般來(lái)說(shuō)使用機(jī)場(chǎng)要比使用城市更貼近你,而且更精確一些。
$ curl wttr.in/JFK
猜測(cè)所在地
Weather by landmark from wttr.in
通過(guò)使用 ~
字符,你可以讓 wttr.in
通過(guò)地標(biāo)來(lái)猜測(cè)天氣情況。
$ curl wttr.in/~Statue+Of+Liberty
域名所在地的天氣
Weather by domain name from wttr.in
你想不想知道 LinuxConfig 托管地的天氣?現(xiàn)在有一個(gè)方法可以知道!wttr.in
可以通過(guò)域名獲取天氣。是的,這個(gè)功能可能不那么實(shí)用,但這很有趣啊。
$ curl wttr.in/@linuxconfig.org
更改溫度單位
Change unit system in wttr.in
默認(rèn)情況下,wttr.in
會(huì)根據(jù)你的實(shí)際地址來(lái)決定顯示哪種溫度單位(C 還是 F)?;旧?,在美國(guó),使用的是華氏度,而其他地方顯示的是攝氏度。你可以指定顯示的溫度單位,在 URL 后添加 ?u
會(huì)顯示華氏度,而添加 ?m
會(huì)顯示攝氏度。
$ curl wttr.in/New_York?m
$ curl wttr.in/Toronto?u
在 ZSH 上有一個(gè)很奇怪的 bug,會(huì)使得這兩條語(yǔ)句不能正常工作,如果你需要更換單位,恐怕需要改成使用 Bash 了。
總結(jié)
你可以很方便地在腳本,定時(shí)任務(wù),甚至 MOTD(LCTT 譯注:Message Of The Day - 每日消息)中訪問(wèn) wttr.in
。當(dāng)然,你完全沒(méi)有必要這么做。當(dāng)你需要查看天氣預(yù)報(bào)的時(shí)候只需要訪問(wèn)一下這個(gè)超棒的網(wǎng)站就行了。