重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

怎么用Linux-shell获取天气状况

这篇文章主要讲解了“怎么用Linux-shell获取天气状况”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用Linux-shell获取天气状况”吧!

10年积累的成都网站设计、成都网站制作经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有昆山免费网站建设让你可以放心的选择与我们合作。

用Linux中的shell获取天气

1获取对应城市天气

所有天气信息都从中国天气网获取。每一个城市多会对应一个id(比如,北京为101010100,因为本人在银川,所以例子中就用银川的id:101170101),通过id就可以获取对应城市实时天气或者全天天气,还可以获取七天天气。

1.1shell脚本

shell脚本代码如下:

#!/bin/sh   weatherDateRoot=http://www.weather.com.cn/data/sk/101170101.html  weatherweatherDataFile=weather.html  wget $weatherDateRoot -O $weatherDataFile > /dev/null 2>&1   sed 's/.*temp":"\([0-9]\{1,2\}\).*/\1/g' $weatherDataFile

此脚本通过将天气信息获取,然后通过正则匹配到当前温度。

如果你只用这个脚本,不再进行二次处理,那也太麻烦。我获取天气信息后是显示到终端命令提示符中的,所以需要还要在做处理。

2终端命令提示符中显示天气

首先获取对应城市天气,如银川对应的实时天气信息在:

http://www.weather.com.cn/data/sk/101170101.html

你先在中国天气网搜索到你想要的城市的天气,网址中会包含城市天气id,将上面的网址中的id替换成你城市的id就可以获取。

还有全天天气信息:

http://www.weather.com.cn/data/cityinfo/101170101.html

不知道中国天气网提供七天天气信息没有?如果有,那么我们也可以通过此方法获取七天天气信息。

2.1获取天气信息

对应shell脚本:

#!/bin/sh  allDataUrl=http://www.weather.com.cn/data/cityinfo/101170101.html  allDataFile=/home/snowsolf/shell/weather/allDay.html  dataUrl=http://www.weather.com.cn/data/sk/101170101.html  dataFile=/home/snowsolf/shell/weather/weather.html  wget $dataUrl -O $dataFile > /dev/null 2>&1  wget $allDataUrl -O $allDataFile > /dev/null 2>&1

 2.2定时获取

通过crontab命令设置定时任务,执行crontab -e命令(如果***次需要设置默认编辑器),然后在文件末尾添加:

*/30 * * * * /home/snowsolf/shell/weather/weather.sh >> /dev/null

此行代码设置每30分钟执行一次获取天气的脚本,具体crontab命令其它语法可以google或baidu。

2.3提取天气

sed 's/.*temp":"\([0-9]\{1,2\}\).*/\1/g'

此命令可以从获取的实时天气文件中获取实时天气。

2.4终端命令提示符中显示

你可以参考http://www.cnblogs.com/snowsolf/p/3192224.html。这里可以让你的命令提示符更绚丽。

***上一幅我的命令提示符图:

怎么用Linux-shell获取天气状况

感谢各位的阅读,以上就是“怎么用Linux-shell获取天气状况”的内容了,经过本文的学习后,相信大家对怎么用Linux-shell获取天气状况这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!


网页名称:怎么用Linux-shell获取天气状况
浏览地址:http://cqcxhl.com/article/ijihid.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP