循环控制及状态返回值的应用实践(分析apache日志)

12.1 break,continue,exit,return的区别和对比

break和continue在条件语句以及循环语句(for,while,if等)中用于控制程序的走向;exit用户终止所有语句并退出当前脚本,除此之外,exit还可以返回上一次程序或命令的执行状态值给当前shell;return类似于exit,只不过return仅用在函数返回值函数执行的状态值。

break n   如果省略n,则表示跳出整个循环,n表示跳出循环的层数

continue n  如果省略n,则表示跳过本次循环,省略本次省略的剩余代码,进入循环的下一次循环,n表示退出第n层继续循环

exit n  推出当前的shell程序,n为上一层程序执行的返回值,n也可以省略,在下一个shell里通过"$?"接收exit的n值

return n 用于函数里作为函数的返回值,以判断函数执行是否正确

12.2  break,continue,exit功能(总结上面的)

在while和for中

break用于退出当前循环语句,以为着循环结束

continue用于退出当前的循环层次,继续下次循环

exit用户直接退出脚本,不在执行shell

开发shell脚本为服务器临时配置多个ip,ip的范围是192.168.116.150-192.168.116.160,但是不创建192.168.116.155

#!/bin/bash
#ip:192.168.116.150-192.168.116.160

a=150
for i in `seq 10`
do
  if [ $a -eq 155 ]; then
    ((a++))
    continue

  fi
  ip=192.168.116."$a"

  ifconfig ens33:$i $ip netmask 255.255.255.0 up
  ((a++))

done

分析apache访问日志,把日志中的每行数据的访问字节数所对应的字段数字相加,计算出总的访问量,给出实现顺序,请用while循环结构实现。

#!/bin/bash
#logfile=/var/log/httpd/access_log
sum=0
exec <  /var/log/httpd/access_log
while read line
do
#  sum=0
  b=`echo "$line" | awk '{print $10}'`
  a=$?
  expr $a + 5 >/dev/null
  if [ $? -eq 0 ]; then
   sum=$(($sum+$b))
  fi
done
echo $sum

原文地址:http://blog.51cto.com/11726212/2071631

时间: 2024-08-08 02:03:26

循环控制及状态返回值的应用实践(分析apache日志)的相关文章

一篇博客分清shell中的状态返回值-return-break-continue-exit

一篇博客分清shell中的状态返回值-return-break-continue-exit 一.break.continue.exit.return的区别和对比 条件与循环控制及程序返回值命令知识表 命令 说明 break n 如果省略n,则表示跳出整个循环,n表示跳出循环的层数 continue n 如果省略n,则表示跳出本次循环,忽略本次循环剩余代码,进入循环的下一次循环.n表示退到第n层继续循环 exit n 表示退出当前shell程序,n为上一次程序执行的状态返回值,n也可以省略,在下一

shell脚本分析apache日志状态码

一.首先将apache日志按天切割 vi /etc/httpd/conf/httpd.confErrorLog "|rotatelogs /var/log/httpd/%Y%m%derror_log 86400 480″CustomLog "|rotatelogs /var/log/httpd/%Y%m%daccess_log 86400 480″ combined 二.重启apache服 service httpd restart ##################apahce日志

HTTP各个状态返回值

转载来自于:http://desert3.iteye.com/blog/1136548 502 Bad Gateway:tomcat没有启动起来 504 Gateway Time-out: nginx报出来的错误,一般是nginx做为反向代理服务器的时候,所连接的应用服务器譬如tomcat无相应导致的 302(临时移动) 服务器目前正从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求,302响应时,临时URL通过Location 字段返回给客户端. 304(未修改) 自从上次请

bash的工作特性之命令执行状态返回值和命名行展开所涉及的内容及其示例演示

1.bash状态返回值: 命令的执行结果状态 成功/失败:两种状态 bash使用特殊变量$?保存最近一条命令的执行状态结果: 0:成功 1-255:失败 2.命令行命令展开: ~:展开为用户的主目录 ~USERNAME:展开为指定用户的主目录 {}:可承载一个以逗号分隔的列表,并将其展开为多个路径 /tmp{a,b} - /tmp/a. /tmp/b /tmp/{tom,jerry}/hi = /tmp/tom/hi, /tmp/jerry/hi

21_Shell语言——条件判断一之执行状态返回值、单分支条件判断语句

一.选择执行语句概述 面向过程的程序其流程控制结构主要有三种:1. 顺序执行:2. 循环执行:3. 选择执行.前文中介绍了循环执行,本章及后续章节将重点介绍选择执行这种结构. 选择执行是指当程序执行过程中如果满足指定条件,就执行其中一部分内容,否则就执行其他内容,即只是有选择性的执行测试条件的相关内容. 现在设想,如果要添加用户user1,可以使用useradd user1来实现.但如果user1用户已经存在了,那么执行useradd user1时就会报错.为了避免这种情况,就需要在执行前先测试

bash命令行返回值和展开

bash命令行返回值和展开 bash 命令 状态 返回 1.命令状态结果和执行结果 (1)命令执行的状态返回值,命令执行完成之后,其执行状态结果值保存于bash的特殊状态变量$?中. 0:成功 1-255:失败 [root@yumc66 ~]# date 2016年 12月 20日 星期二 11:57:10 CST [root@yumc66 ~]# echo $? 0 [root@yumc66 ~]# $? -bash: 0: command not found [root@yumc66 ~]#

bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。

bash特性:命令执行状态返回值 bash命令的执行状态分为两种:?1. 成功,状态返回值为0.?2. 失败,状态返回值为1-255.bash使用特殊变量$?保存最近一条命令的执行状态结果:echo $? bash命令的执行结果:成功 bash命令的执行结果:成功 bash命令的执行结果:失败 bash命令的执行结果:失败 bash特性:命令行展开 ~:可以展开当前登录用户的家目录.~USERNAME:可以展开指定用户的家目录.{}:分组符号,承载以逗号,为分割符号的路径列表,并将其展开为多个路

bash的工作特性及命令状态返回查询

bash的基础特性:命令的执行状态结果 命令执行的状态结果: bash通过状态返回值来输出此结果: 成功:0 失败:1-255 命令执行完成之后,其状态返回值保存于bash的特殊变量$?中: 命令正常执行时,有的还回有命令返回值: 根据命令及其功能不同,结果各不相同: eg:ifconfig为显示网卡配置信息,是正确的命令,因此返回值:0:当输入为无效命令时,返回值则为:1-255之间 原文地址:http://blog.51cto.com/13745888/2118553

bash的命令执行状态返回值

bash通过状态返回值来输出命令执行的状态结果,如成功,输出"0"值:失败,输出"1"到"255"之间的一个值. 命令执行完成之后,其状态返回值保存在bash的特殊变量$?中. 示例: [[email protected] ~]# ls anaconda-ks.cfg [[email protected] ~]# echo $? 0 [[email protected] ~]# ls /etcc ls: cannot access /etcc: