免费注册 查看新帖 |

Chinaunix

广告
  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2358 | 回复: 7
打印 上一主题 下一主题

新手写了一个脚本 求高手拍砖 [复制链接]

论坛徽章:
1
巳蛇
日期:2014-08-21 15:09:09
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-12-22 19:16 |只看该作者 |倒序浏览
本帖最后由 pandorabag 于 2010-12-23 08:25 编辑
  1. # !/bin/sh
  2. day=`date +%Y-%m-%d`
  3. lastday=`date -d "-1 day" +%Y-%m-%d`
  4. hour=`date -d "-1 hour" +%H`
  5. if [ $1 ]; then
  6. day=$1
  7. fi
  8. if [ $2 ];then
  9. hour=$2
  10. fi
  11. if [ $3 ];then
  12. lastday=$3
  13. fi
  14. ###############declare#############
  15. today=$day"-"$hour
  16. last=$lastday"-"$hour
  17. ###############func################
  18. check ()
  19. {

  20. if [ $1 ];then
  21. vt=$1
  22. fi
  23. if [ $2 ];then
  24. user=$2
  25. fi

  26. database='/usr/local/mysql/bin/mysql  -uroot -pabdd  market -e'
  27. text=`$database "select  a,b from  down where datestat ='$day' and hourstat='$hour' and product='$vt' ;"`
  28. com=`echo $text |awk '{printf"%d",$3}' `
  29. tdown=`echo $text |awk '{printf"%d",$4}' `
  30. if (( `expr $com \< 130`)) && ((`expr $com \> 70` )) ;then
  31. echo $1"ok  " $com
  32. else
  33. lasttext=`$database "select  a from  down where datestat ='$lastday' and hourstat='$hour' and product='$vt'; "`
  34. ldown=`echo $lasttext |awk '{printf"%d",$2}' `
  35. echo -e "\n\n"$1"  error 异常: \n\n\ndate\tdowns\n\n$day\t$tdown\n\n$lastday\t$ldown\n\n同比\t$com%\n" |/usr/local/bin/mutt  -s  $vt"下载量异常"  $user
  36. fi
  37. }
  38. check a   xx@qq.com
  39. check b   aa@126.com
  40. check c   dd@123.com
复制代码
写了这段代码,求高手们拍砖

代码实现的左右就是从数据库表查询一个结果  并比较

高手们看看那里写的复杂了 或者难看

第一次自己写code  想多注意些格式

欢迎批评指正

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
2 [报告]
发表于 2010-12-23 00:03 |只看该作者
要不要对用户输入的$1、$2、$3做个合法性检查?

论坛徽章:
0
3 [报告]
发表于 2010-12-23 10:18 |只看该作者
简单 实用 但是不好用。

建议楼主展开联想,后面增加一个循环,读取配置文件。

论坛徽章:
1
巳蛇
日期:2014-08-21 15:09:09
4 [报告]
发表于 2010-12-23 10:40 |只看该作者
简单 实用 但是不好用。

建议楼主展开联想,后面增加一个循环,读取配置文件。
zxpxyz 发表于 2010-12-23 10:18



    多谢指点

论坛徽章:
0
5 [报告]
发表于 2010-12-23 11:55 |只看该作者
给你来点高级用法:

if [ $1 ]; then

day=$1

fi

if [ $2 ];then

hour=$2

fi

if [ $3 ];then

lastday=$3

fi

======>>


for i in day hour lastday; do

[ $# -gt 0 ] || break
eval $i=$1
shift

done

论坛徽章:
1
巳蛇
日期:2014-08-21 15:09:09
6 [报告]
发表于 2010-12-23 12:57 |只看该作者
给你来点高级用法:

if [ $1 ]; then

day=$1

fi

if [ $2 ];then

hour=$2

fi

if [ $3 ] ...
nhw_cs 发表于 2010-12-23 11:55



    这位大侠能解释你下你的code吗? 看不大明白

论坛徽章:
0
7 [报告]
发表于 2010-12-24 09:43 |只看该作者
一个建议,注意缩进,风格有点。。。

论坛徽章:
1
巳蛇
日期:2014-08-21 15:09:09
8 [报告]
发表于 2010-12-24 11:02 |只看该作者
一个建议,注意缩进,风格有点。。。
xiaopan3322 发表于 2010-12-24 09:43



    确实需要缩进。。 多谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP