Linux-shell获取天气
用Linux中的shell获取天气,本来觉的比较难,原来,真简单,个位数的代码就搞定。
获取对应城市天气
所有天气信息都从中国天气网获取。每一个城市多会对应一个id(比如,北京为101010100,因为本人在银川,所以例子中就用银川的id:101170101),通过id就可以获取对应城市实时天气或者全天天气,还可以获取七天天气。
shell脚本
shell脚本代码如下:
#!/bin/sh weatherDateRoot=http://www.weather.com.cn/data/sk/101170101.html
weatherDataFile=weather.html wget $weatherDateRoot -O $weatherDataFile > /dev/null >& sed 's/.*temp":"\([0-9]\{1,2\}\).*/\1/g' $weatherDataFile
此脚本通过将天气信息获取,然后通过正则匹配到当前温度。
如果你只用这个脚本,不再进行二次处理,那也太麻烦。我获取天气信息后是显示到终端命令提示符中的,所以需要还要在做处理。
终端命令提示符中显示天气
首先获取对应城市天气,如银川对应的实时天气信息在:
http://www.weather.com.cn/data/sk/101170101.html
你先在中国天气网搜索到你想要的城市的天气,网址中会包含城市天气id,将上面的网址中的id替换成你城市的id就可以获取。
还有全天天气信息:
http://www.weather.com.cn/data/cityinfo/101170101.html
不知道中国天气网提供七天天气信息没有?如果有,那么我们也可以通过此方法获取七天天气信息。
获取天气信息
对应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 >& wget $allDataUrl -O $allDataFile > /dev/null >&
定时获取
通过crontab命令设置定时任务,执行crontab -e命令(如果第一次需要设置默认编辑器),然后在文件末尾添加:
*/30 * * * * /home/snowsolf/shell/weather/weather.sh >> /dev/null
此行代码设置每30分钟执行一次获取天气的脚本,具体crontab命令其它语法可以google或baidu。
提取天气
sed 's/.*temp":"\([0-9]\{1,2\}\).*/\1/g'
此命令可以从获取的实时天气文件中获取实时天气。
终端命令提示符中显示
你可以参考http://www.cnblogs.com/snowsolf/p/3192224.html。这里可以让你的命令提示符更绚丽。
最后上一幅我的命令提示符图:
简直酷毙了!!!做一个爱折腾的程序员真好!
Linux-shell获取天气的更多相关文章
- linux shell获取show slave status方法
linux shell获取show slave status方法<pre>#!/bin/basharray=($(mysql -u数据库账号 -p数据库密码 -e "show s ...
- linux shell获取键盘输入
linux shell从键盘获取输入 代码1: #!/bin/bash #提示“Input your choice:”,把用户的输入保存入变量choice_user中read -p "Inp ...
- linux shell获取时间
获得当天的日期 date +%Y-%m-%d 输出: 2011-07-28 将当前日期赋值给DATE变量DATE=$(date +%Y%m%d) 有时候我们需要使用今天之前或者往后的日期,这时可以使用 ...
- linux shell 获取进程pid
1.通过可执行程序的程序名称 a.运行程序 b.获取进程id号 c.pidof相关知识:http://www.cnblogs.com/yunsicai/p/3675938.html 2.有些程序需要在 ...
- linux shell获取用户输入
一.获取用户输入1.基本读取read命令接收标准输入的输入,或其它文件描述符的输入.得到输入后,read命令将数据输入放入一个标准变量中.[root@rac2 ~]# cat t8.sh #!/bin ...
- [转]linux shell 获取当前正在执行脚本的绝对路径
原文链接:http://sexywp.com/bash-how-to-get-the-basepath-of-current-running-script.htm 常见的一种误区,是使用 pwd 命令 ...
- [TimLinux] Linux shell获取进程pid
调用脚本时,获取进程PID: (/this/is/a/script/file.sh > /out/to/log.txt & echo $!) & 脚本内部,获取进程PID: ec ...
- Linux shell 获取当前时间之前N天
date +%Y%m%d --date '2 days ago' 更多资料关注:www.kootest.com ;技术交流群:182526995
- Linux Shell获取系统资源使用百分比(CentOS)
CPU使用率: top -b -n | | 内存使用率: free -m | grep '^-' | awk '{print $3/($3+$4)*100"%"}' IO使用率(F ...
- linux shell 获取当前日期/时间
1. 当前日期 [root@Tomcat DFJR-ERP]# cur_date="`date +%Y-%m-%d`" [root@Tomcat DFJR-ERP]# echo $ ...
随机推荐
- 剑指offer--5.变态跳台阶
WA了一次,错误数据4,输出8,怎么真么熟悉呢?改个return过了,OMG ------------------------------------------------------------- ...
- Python中类的约束
如何在python中进行类的约束 使某些类必须有一些方法 1 python 的抽象类实现 === 约束性不高 Python是 解释性语言 from abc import ABCMeta from ab ...
- JQuery 提供了两种方式来阻止事件冒泡。
JQuery 提供了两种方式来阻止事件冒泡. 方式一:event.stopPropagation(); $("#div1").mousedown(function(event){ ...
- win8.1系统相关
win8.1系统相关 信息时代,系统更新速度非常快,十一月初,同事在网上花5元买了一个win8.1系统激活码,之后两周,我电脑由于系统故障,准备重装系统,借助他的系统,但无法激活,借用他购买的账号也不 ...
- vlan之间Hybrid端口配置
要求:1.PC1和PC2不能互相访问,但是都能访问PC3 SW1配置:vlan batch 10 20 100 interface Ethernet0/0/1 ...
- PIX v2版本中Query 失败时, ERR段的构造
在ITI-9中描述PIX query事务的几个TestCase场景.其中有些是对于Query失败的描述. ERR 段包含Error location, Error code, Error code t ...
- 蓝桥杯 历届试题 PREV-32 分糖果
历届试题 分糖果 时间限制:1.0s 内存限制:256.0MB 问题描述 有n个小朋友围坐成一圈.老师给每个小朋友随机发偶数个糖果,然后进行下面的游戏: 每个小朋友都把自己的糖果分一半给左手边 ...
- 自己写的highcharts级联(点击事件)
$.fn.extend({ Zhu: function (option) { var id = $(this).attr("id"); $('#' + id).highcharts ...
- Java基础--压缩和解压缩gz包
gz是Linux和OSX中常见的压缩文件格式,下面是用java压缩和解压缩gz包的例子 public class GZIPcompress { public static void FileCompr ...
- windows异常演示,指定异常类型,然后生成异常
#include "stdafx.h"#include <Windows.h>#include <float.h> DWORD Filter (LPEXCE ...