5行的天气脚本

sh/bash/dash/ksh/zsh等Shell脚本
tusooa
帖子: 6548
注册时间: 2008-10-31 22:12
系统: 践兔
联系:

5行的天气脚本

#1

帖子 tusooa » 2010-07-09 9:14

貌似ee有一个类似的。
貌似吾的短 :em04 。5行有效代码。
大家各自拿回去用吧。
新版,效率高了。

代码: 全选

tlcr: 0 庚寅年六月初六日 13:25:53  ~
>> dog 应用/脚本/wg-天气.perl
#!/usr/bin/env perl

use 5.010;

$city = $ARGV[0] ? $ARGV[0] : "南京";
$_ = `w3m -cookie -dump "http://www.google.com.hk/search?hl=zh-CN&q=tq+$city" 2> /dev/null`;

die "城市名称有误。\n" if ! s/北京市专业气象台.*//s;
s/.*?天气//s;

say "当前: $1 $2\n" if /当前:([^\n]+)\n([^\n]+)/s;
say "今天: $2 $1\n" if /\s+今日\n\s+([^\n]+)\n\s+(\d+ \/ \d+°C)/s;

tlcr: 0 庚寅年六月初六日 13:26:43  ~
>> 
(加上Google.com.hk的语言设置,感谢10f指正)

代码: 全选

tlcr: 0 庚寅年五月廿八日 08:25:39  ~
>> dog 应用/脚本/wg-天气.perl 
#!/usr/bin/env perl

use 5.010;

$city = $ARGV[0] ? $ARGV[0] : "南京";
$_ = `w3m -cookie -dump "http://www.google.com.hk/search?q=tq+$city" 2> /dev/null`;

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

# 当前
say "当前天气:\n$1\n$2\n$3\n湿度:$4\n" if /(\d+ \/ \d+°C)\n当前:([^\n]+)\n([^\n]+)\n湿度:(\d+%)/s;
say "今天:\n$2\n$1" if /\s+今日\n\s+([^\n]+)\n\s+(\d+ \/ \d+°C)/s;

tlcr: 0 庚寅年五月廿八日 09:05:01  ~
>> wg-天气.perl 
当前天气:
31 / 24°C
雷阵雨
东南风3-4级
湿度:87%

今天:
31 / 24°C
雷阵雨
tlcr: 0 庚寅年五月廿八日 09:05:14  ~
>> 
上次由 tusooa 在 2010-07-17 13:30,总共编辑 3 次。

代码: 全选

] ls -ld //
头像
leeaman
帖子: 30702
注册时间: 2007-02-02 18:14
系统: debian sid

Re: 获取Google.com.hk的天气信息

#2

帖子 leeaman » 2010-07-09 9:24

很好,比ee的好多啦 :em05
醉了星星,醉月亮●●●●●The Long Way To Go(*^_^*)
tusooa
帖子: 6548
注册时间: 2008-10-31 22:12
系统: 践兔
联系:

Re: 5行的天气脚本

#3

帖子 tusooa » 2010-07-16 11:29

更新了一下。

代码: 全选

] ls -ld //
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 5行的天气脚本

#4

帖子 eexpress » 2010-07-16 11:44

use 5.010;


真先进了
● 鸣学
tusooa
帖子: 6548
注册时间: 2008-10-31 22:12
系统: 践兔
联系:

Re: 5行的天气脚本

#5

帖子 tusooa » 2010-07-16 13:10

额,这么口口阿!
被看了111次,就3个回复。 :em06 :em06 :em06 :em06
看帖不回贴, 不道德阿。
围观不回贴的。
:em04 :em04 :em04
:em04 :em06 :em04
:em04 :em04 :em04

代码: 全选

] ls -ld //
头像
adagio
论坛版主
帖子: 22110
注册时间: 2008-02-17 23:47
来自: 美丽富饶的那啥星球

Re: 5行的天气脚本

#6

帖子 adagio » 2010-07-16 13:19

代码: 全选

Can't modify constant item in scalar assignment at /home/Scripts/tq line 6, near "`w3m -cookie -dump "http://www.google.com.hk/search?q=tq+$city" 2> /dev/null`;"
Execution of /home/Scripts/tq aborted due to compilation errors.
这个啥意思?
明天就换大三八!
——8核CPU、8G内存、8T硬盘……
8卡交火,80寸大屏放8个……
IPv8的光纤要8条……

---------------------------------------------------------------------------------
[图片版]新手当自强(续)FAQ
[新手进阶]挂载、fstab、调整linux分区
[图片版]E17桌面环境配置手把手
头像
ルルティア
帖子: 1077
注册时间: 2010-05-23 17:10

Re: 5行的天气脚本

#8

帖子 ルルティア » 2010-07-16 13:32

我按照你的原样运行的。。为什么城市名有错误?
everything is nada; nada is nothing
Otro Loco Más
我是Lavande的马甲,但是有时候,我觉得,我们不是同一个人。
tusooa
帖子: 6548
注册时间: 2008-10-31 22:12
系统: 践兔
联系:

Re: 5行的天气脚本

#9

帖子 tusooa » 2010-07-16 23:00

6f:吾的没问题啊。

代码: 全选

tlcr: 0 庚寅年六月初五日 21:49:28  ~
>> wg-天气.perl
当前: 雷阵雨 南风3-4级

今天: 28 / 24°C 雷阵雨

tlcr: 0 庚寅年六月初五日 22:54:46  ~
>>
查尔perl版本:

代码: 全选

tlcr: 0 庚寅年六月初五日 22:54:46  ~
>> perl --version

This is perl, v5.10.1 (*) built for i686-linux-thread-multi

Copyright 1987-2009, Larry Wall

Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.

Complete documentation for Perl, including FAQ lists, should be found on
this system using "man perl" or "perldoc perl".  If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.

tlcr: 0 庚寅年六月初五日 22:55:16  ~
>> 
若少于5.10,估计会出问题。

8f:说明谷不到,或者网络有问题。

代码: 全选

] ls -ld //
头像
ルルティア
帖子: 1077
注册时间: 2010-05-23 17:10

Re: 5行的天气脚本

#10

帖子 ルルティア » 2010-07-17 10:49

大三八可能是没装w3m吧?
这个脚本如果要通用可能得改一下

代码: 全选

$_ = `w3m -cookie -dump "http://www.google.com.hk/search?q=tq+$city" 2> /dev/null`;
应该加一个语言设置的参数,变成简体
因为我的w3m没登录过google,没cookie,初次登录是显示繁体,而繁体不能查天气
这样写就好了,测试发现没问题

代码: 全选

$_ = `w3m -cookie -dump "http://www.google.com.hk/search?hl=zh-CN&q=tq+$city" 2> /dev/null`;
everything is nada; nada is nothing
Otro Loco Más
我是Lavande的马甲,但是有时候,我觉得,我们不是同一个人。
头像
HuntXu
帖子: 5776
注册时间: 2007-09-29 3:09

Re: 5行的天气脚本

#11

帖子 HuntXu » 2010-07-17 13:00

你用5.010就是为了用say... :em20
HUNT Unfortunately No Talent...
tusooa
帖子: 6548
注册时间: 2008-10-31 22:12
系统: 践兔
联系:

Re: 5行的天气脚本

#12

帖子 tusooa » 2010-07-17 13:27

say,少写4个字,爽啊。

代码: 全选

] ls -ld //
onelynx
帖子: 817
注册时间: 2008-11-13 16:03

Re: 5行的天气脚本

#13

帖子 onelynx » 2010-07-17 13:30

ルルティア 写了:大三八可能是没装w3m吧?
这个脚本如果要通用可能得改一下

代码: 全选

$_ = `w3m -cookie -dump "http://www.google.com.hk/search?q=tq+$city" 2> /dev/null`;
应该加一个语言设置的参数,变成简体
因为我的w3m没登录过google,没cookie,初次登录是显示繁体,而繁体不能查天气
这样写就好了,测试发现没问题

代码: 全选

$_ = `w3m -cookie -dump "http://www.google.com.hk/search?hl=zh-CN&q=tq+$city" 2> /dev/null`;
不错学习了
tusooa
帖子: 6548
注册时间: 2008-10-31 22:12
系统: 践兔
联系:

Re: 5行的天气脚本

#14

帖子 tusooa » 2010-07-17 13:36

38不是没装w3m,
找不到w3m,perl不会报编译错误。

代码: 全选

tlcr: 127 庚寅年六月初六日 13:30:35  ~
>> type w3m
w3m is /usr/bin/w3m
tlcr: 0 庚寅年六月初六日 13:30:54  ~
>> PATH=/bin:$HOME/应用/脚本 /usr/bin/perl -w $(which wg-天气.perl)
城市名称有误。

代码: 全选

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

Re: 5行的天气脚本

#15

帖子 tusooa » 2010-07-18 17:04

有没有人把它放到conky里面的?
ps:216次阅读,就14次回复! :em20

代码: 全选

] ls -ld //
回复