当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 5 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 这个脚本的输出为什么丢内容?
帖子发表于 : 2010-10-01 20:53 

注册: 2007-07-19 13:28
帖子: 26
送出感谢: 0 次
接收感谢: 0 次
#!/bin/bash

#获取时间:
#date | cut -d ' ' -f5 | cut -d : -f1

wget -O /tmp/tianqi http://www.weather.com.cn/html/weather/101091001.shtml
cd /tmp
DU=$(head -226 ./tianqi | tail -1 | cut -d '>' -f4 | cut -d '<' -f1)

#day1
DAY_1_DATE=$(head -216 ./tianqi | tail -1 | cut -d '>' -f2 | cut -d '<' -f1) #日期
DAY_1_TIME=$(head -217 ./tianqi | tail -1 | cut -d '>' -f2 | cut -d '<' -f1) #夜间、白天
DAY_1_TMP=$(head -223 ./tianqi | tail -1 | cut -d '>' -f3 | cut -d '<' -f1) #天气
DAY_1_LOW=$(head -226 ./tianqi | tail -1 | cut -d '>' -f3 | cut -d '<' -f1) #低温
DAY_1_WIND=$(head -231 /tmp/tianqi | tail -1) #风向
DAY_1_LEVEL=$(head -236 /tmp/tianqi | tail -1) #风力

echo $DAY_1_DATE
echo $DAY_1_TIME $DAY_1_TMP
echo "温度: "$DAY_1_LOW$DU
echo $DAY_1_WIND $DAY_1_LEVEL


新手,拜托各位老大给看看


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 这个脚本的输出为什么丢内容?
帖子发表于 : 2010-10-01 22:58 

注册: 2008-10-31 22:12
帖子: 6546
系统: 践兔
送出感谢: 18
接收感谢: 25
搜索 5行 天气脚本。


_________________
代码:
] ls -ld //


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 这个脚本的输出为什么丢内容?
帖子发表于 : 2010-10-01 23:33 
头像

注册: 2008-09-18 13:11
帖子: 2646
送出感谢: 1
接收感谢: 423
鄙视楼上。

你所谓的丢内容是指风向没输出吧
head -231 /tmp/tianqi | tail -1 取得的风向后面还带有一个换行一个回车,你可以通过 head -231 /tmp/tianqi | tail -1 | od -x 来看到。
而回车符在终端下的作用是将光标位置移动到行首,所以 echo $DAY_1_WIND $DAY_1_LEVEL 这句先输出了风向后,再输出的风力时就把已经输出的风向给覆盖掉了。

简单的一段脚本程序来演示回车和换行以及两者混合后的输出效果。
代码:
printf "#1 this is the first line.\nsecond line?\n"
printf "#2 this is the first line.\rsecond line?\n"
printf "#3 this is the first line.\r\nsecond line?\n"
printf "#4 this is the first line.\n\rsecond line?\n"


解决办法就是去除回车符
代码:
DAY_1_WIND=$(head -231 /tmp/tianqi | tail -1 | sed 's/\r//g') #风向


另外,你这个程序没必要输出到临时文件,wget可以直接输出到标准输出
代码:
page=$(wget http://www.weather.com.cn/html/weather/101091001.shtml -O-)

输出第n行也不必head+tail,用sed吧
代码:
sed -n '2p'

就输出第2行了


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 这个脚本的输出为什么丢内容?
帖子发表于 : 2010-10-02 22:23 

注册: 2007-07-19 13:28
帖子: 26
送出感谢: 0 次
接收感谢: 0 次
谢谢您,astolia
谢谢!


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 这个脚本的输出为什么丢内容?
帖子发表于 : 2010-10-06 17:24 

注册: 2008-10-31 22:12
帖子: 6546
系统: 践兔
送出感谢: 18
接收感谢: 25
astolia, 不建议用\r。用\e[1G。
更清楚点。


_________________
代码:
] ls -ld //


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 5 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 3 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译