Java中forecho循环_Shell编程(for循环、while循环、break、continue、exit)

for循环

语法:for 变量名 in 条件; do …; done

案例1: 需求:计算1-100求和 脚本实现:

#!/bin/bash

sum=0

for i in `seq 1 100` #设置遍历条件为1-100

do

sum=$[$sum+$i]

echo $i

done

echo $sum

案例2: 需求:遍历出指定目录下的目录名称 脚本实现:

#!/bin/bash

cd /tmp/ #进入目录这一步很重要

for a in `ls /tmp/`

do

if [ -d $a ]

then

ls -d $a

fi

done

while循环

语法:while 条件; do … ; done

案例1: 需求:监控脚本,实现每隔30s检查一次负载,当系统的负载大于10的时候,发一封邮件(监控脚本),最小单元是任务计划 cron 脚本实现:

#!/bin/bash

while : # 冒号 : 表示死循环的意思,或者1,或者 true都是死循环

do

load=`w|head -1|awk -F 'load average: ' '{print $2}'|cut -d. -f1`

if [ $load -gt 10 ]

then

/usr/local/sbin/mail.py xxx@qq.com "load high" "$load"

fi

sleep 30 #休眠30秒,因为检查系统负载,不需要一直监控,节省性能

done

ps :防止意外终止,可以打开screen,在screen运行脚本

上面脚本脚本用到的知识:

w //查看系统负载 ;

uptime 可以直接显示 w 系统负载的第一行,就可以省去 head -1

head -1 //取第一行

awk -F 'load average: ' '{print $2}' // 以'load average: '分隔,输出第二段

cut -d . -f1 // 以 . 分隔 取第一段

案例2: 需求:需要用户输入一个数字;输入的不是数字,是数字,输入为空;回应相应的结果 脚本实现:

#!/bin/bash

while :

do

read -p "please input a number:" n

if [ -z "$n" ]

then

echo "you need input sth."

continue #结束本次循环,进行下次循环

fi

n1=`echo $n|sed 's/[0-9]//g'`

if [ -n "$n1" ]

then

echo "you just only input numbers."

continue

fi

break # 退出循环

done

echo $n

break跳出循环

break 常用于循环语句中,跳出整个循环语句,直接结束所有循环

脚本示例:

#!/bin/bash

for i in `seq 1 5`

do

echo $i

if [ $i -eq 3 ] #比较数字,用-eq ;若是比较的是字符串,那需要用 ==

then

break

fi

echo $i

done

echo aaaaa

continue结束本次循环

结束本次循环,进行下一次循环

脚本示例:

#!/bin/bash

for i in `seq 1 5`

do

echo $i

if [ $i -eq 3 ]

then

continue

fi

echo $i

done

echo aaaaa

执行脚本:3输出一次跳出,进行了下次循环

[root@yolks3 shell]# sh continue.sh

1

1

2

2

3

4

4

5

5

aaaaa

exit退出整个脚本

exit直接结束退出整个脚本,可以定义退出的数值,可以用于确定脚本运行到什么地方的时候,结束

脚本示例:

#!/bin/bash

for i in `seq 1 5`

do

echo $i

if [ $i -eq 3 ]

then

exit

fi

echo $i

done

echo aaaaa

运行:执行到3后面的不再执行,直接退出脚本

[root@yolks3 shell]# sh exit.sh

1

1

2

2

3

拓展

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值