5行的天气脚本

sh/bash/dash/ksh/zsh等Shell脚本
trailbreaker
帖子: 5
注册时间: 2010-12-20 21:22

Re: 5行的天气脚本

#16

帖子 trailbreaker » 2010-12-20 21:57

首先感谢LZ无私奉献 :em04

修正了当温度为负值时表达式里不读取的问题,格式稍稍修改后用在conky上了 :em05

代码: 全选

use 5.010;
$city = $ARGV[0] ? $ARGV[0] : "常熟";
$para = $ARGV[1] ? $ARGV[1] : "-LOCAL";
$_ = `w3m -cookie -dump "http://www.google.com.hk/search?q=tq+$city" 2> /dev/null`;

# 去掉无用信息
s@.*?天气@@s;
die "城市名称有误。\n" if ! s@北京市专业气象台.*@@s; # 判断是否有天气信息

if($para eq "-LOCAL")
{
# 当前
        say "当前[$city]天气\n$2\t$1\n$3\n湿度:$4\n" if /([\-0-9]+ \/ [\-0-9]+°C)\n当前:([^\n]+)\n([^\n]+)\n湿度:(\d+%)/s;
}
else{
        if($para == "-FUTURE"){
        #say "今天:$2\t$1" if /\s+今日\n\s+([^\n]+)\n\s+(\d+ \/ \d+°C)/s;
                say "周一:$2\n\t$1" if /\s+周一\n\s+([^\n]+)\n\s+([\-0-9]+ \/ [\-0-9]+°C)/s;
                say "周二:$2\n\t$1" if /\s+周二\n\s+([^\n]+)\n\s+([\-0-9]+ \/ [\-0-9]+°C)/s;
                say "周三:$2\n\t$1" if /\s+周三\n\s+([^\n]+)\n\s+([\-0-9]+ \/ [\-0-9]+°C)/s;
                say "周四:$2\n\t$1" if /\s+周四\n\s+([^\n]+)\n\s+([\-0-9]+ \/ [\-0-9]+°C)/s;
                say "周五:$2\n\t$1" if /\s+周五\n\s+([^\n]+)\n\s+([\-0-9]+ \/ [\-0-9]+°C)/s;
                say "周六:$2\n\t$1" if /\s+周六\n\s+([^\n]+)\n\s+([\-0-9]+ \/ [\-0-9]+°C)/s;
                say "周日:$2\n\t$1" if /\s+周日\n\s+([^\n]+)\n\s+([\-0-9]+ \/ [\-0-9]+°C)/s;
        }
}
conky调用

代码: 全选

${font SimSun-ExtB:size=14}${color 3399ff}${goto 95}${execi 1800 perl ~/.conky/weather.pl 常熟 -LOCAL}
${font SimSun-ExtB:size=8}${color 00ff5f}${goto 90}${execi 1800 perl ~/.conky/weather.pl 常熟 -FUTURE}
dqb1990aion
帖子: 16
注册时间: 2010-12-14 15:48

Re: 5行的天气脚本

#17

帖子 dqb1990aion » 2010-12-21 10:17

:em06 :em06 :em06 楼主阿

表示看不懂。
tusooa
帖子: 6548
注册时间: 2008-10-31 22:12
系统: 践兔
联系:

Re: 5行的天气脚本

#18

帖子 tusooa » 2010-12-22 18:01

这。。。挖坟太严重了吧。
吾都改用weather.perl了。

代码: 全选

] ls -ld //
tusooa
帖子: 6548
注册时间: 2008-10-31 22:12
系统: 践兔
联系:

Re: 5行的天气脚本

#19

帖子 tusooa » 2010-12-22 18:07

lsss,

No-

代码: 全选

else { if (xxx) { xxx } }
Use-

代码: 全选

elsif (xxx) { xxx }

代码: 全选

] ls -ld //
trailbreaker
帖子: 5
注册时间: 2010-12-20 21:22

Re: 5行的天气脚本

#20

帖子 trailbreaker » 2010-12-22 23:47

我也是新近才接触perl, 主要就是为了解决conky上的查询天气问题,所以越简单越好。 :em03

所以只要是符合条件的,再老的坟也挖 :em05

楼主把weather.perl亮出来分享一下呢 :em09
tusooa
帖子: 6548
注册时间: 2008-10-31 22:12
系统: 践兔
联系:

Re: 5行的天气脚本

#21

帖子 tusooa » 2010-12-23 17:23

都在github上的。
自己看吧。
tusooa/tusooa

代码: 全选

] ls -ld //
trailbreaker
帖子: 5
注册时间: 2010-12-20 21:22

Re: 5行的天气脚本

#22

帖子 trailbreaker » 2010-12-23 19:22

学习了,多谢 :em01
回复