问题描述
我想从终端找到特定城市的当前天气或我的位置。有没有命令行天气应用程序?
最佳解决思路
只需在终端中输入以下内容:
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 )
次佳解决思路
在http://www.accuweather.com搜索您的城市,并将以下脚本中的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°
第三种解决思路
这是一个用Go编写的很棒的semi-graphical命令行实用程序:
https://github.com/schachmat/wego/
你需要安装Go并设置一些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
第五种思路
尝试使用
telnet rainmaker.wunderground.com
第六种思路
首先你需要安装weather-util软件包,只需按键盘上的Ctrl
+ Alt
+ T
即可打开终端。打开时,运行以下命令:
sudo apt-get install weather-util
你需要你的local weather code。
安装完成后,您可以运行weather -i <code>
。您从上面的链接获得的代码。有关可用选项的列表,您可以运行weather
Weather info
第七种思路
ansiweather
AnsiWeather是一个Shell脚本,用于显示终端中的当前天气状况,支持ANSI颜色和Unicode符号。天气数据来自OpenWeatherMap免费天气API。
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