for循环, while循环,break,continue,exit的用法

for循环

语法:for 变量名 in 条件; do …; done
案例1,求和
#!/bin/bash
sum=0
for i in seq 1 100
do
sum=$[$sum+$i]
echo $i
done
echo $sum
这是计算从1到100总和的脚本。
其中sum变量赋一个值为0,[$sum+$i]是赋值语句,做加减法,也是核心语句。这里中括号不用加空格

案例2,文件循环
文件列表循环
#!/bin/bash
cd /etc/
for a in ls /etc/
do
if [ -d $a ]
then
ls -d $a
fi
done
这是讲/etc/目录下的目录都查询一遍

有时候我们会遇到这种情况,在目录下有些文件名中有空格或者回车键,这样在写脚本的时候
for i in ‘ls ./’;do echo $i ; done
会出现以分隔符分割的文件名

while循环

语法 while 条件; do … ; done
案例1
#!/bin/bash
while :
do
load=w|head -1|awk -F ‘load average: ‘ ‘{print $2}‘|cut -d. -f1
if [ $load -gt 10 ]
then
/usr/lib/zabbix/alertscripts/mail.py [email protected] "load higt" "$load"
fi
sleep 30
done
这是一个监控脚本,这个脚本是每隔半分钟检查一下系统的负载,大于10的时候就发邮件给收件人。
其中while :是死循环的意思
load=w|head -1|awk -F ‘load average: ‘ ‘{print $2}‘|cut -d. -f1是将系统的负载赋值到load这个变量中。
它的意思是w,查看系统负载
head -1选取第一行
awk -F ‘load average: ‘ ‘{print $2}‘以load average:为分隔符,并且打印第二段
cut -d. -f1然后再以.为分隔符,打印第一段
/usr/lib/zabbix/alertscripts/mail.py [email protected] "load higt" "$load"发送邮件,第一段里面写主题,第二段中写内容。
sleep 30 间隔30秒

案例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
这是让用户输入东西的脚本,如果输入不是系统想要的,那他就会不停的让你输入。这个脚本的重点是continue(继续重新执行)和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
这个脚本的意思是如果当$i等于3的时候,就打印出aaaaa。
[[email protected] shell]# sh -x break.sh
++ seq 1 5

  • for i in ‘seq 1 5
  • echo 1
    1
  • ‘[‘ 1 -eq 3 ‘]‘
  • echo 1
    1
  • for i in ‘seq 1 5
  • echo 2
    2
  • ‘[‘ 2 -eq 3 ‘]‘
  • echo 2
    2
  • for i in ‘seq 1 5
  • echo 3
    3
  • ‘[‘ 3 -eq 3 ‘]‘
  • break
  • echo aaaaa
    aaaaa
    当匹配到3的时候,与条件相等。break跳出来,打印aaaaa

continue结束本次循环

忽略continue之下的代码,直接进行下一次循环
#!/bin/bash
for i in seq 1 5
do
echo $i
if [ $i == 3 ]
then
continue
fi
echo $i
done
echo $i
[[email protected] shell]# sh break.sh
1
1
2
2
3
4
4
5
5
aaaaa
在匹配了条件后,它依然往下进行,这就是continux的作用。

exit退出整个脚本

#!/bin/bash
for i in seq 1 5
do
echo $i
if [ $i == 3 ]
then
exit(直接退出这个脚本)
fi
echo $i
done
echo $i
[[email protected] shell]# sh exit.sh
1
1
2
2
3
满足条件见后自动退出,不再向下执行

原文地址:http://blog.51cto.com/13067688/2122653

时间: 2024-10-12 14:38:27

for循环, while循环,break,continue,exit的用法的相关文章

linux 循环结构中的 break continue exit return区别

1 概述 在脚本的循环中,需要用到break,continue,exit.来控制循环.利用return来获取函数的返回值.本文将对这四个命令的使用做介绍 break [N]:提前结束第N层循环,最内层为第1层 continue [N]:提前结束第N层的本轮循环,而直接进入下一轮判断:最内层为第1层 exit 命令终止脚本 2  break continue exit   对比 2.1 break 和continue 测试 假设一个循环体内,总共嵌套了3层循环,总循环体N为3,break 和con

break continue exit return 函数对比

break,continue,exit,用于循环结构中,控制循环的走向,return用于函数中,返回由shell函数得到的退出值给调用它的脚本. 命令 说明 break n n表示跳出循环的层次,如果省略n表示跳出整个循环 continue n n表示退到第n层继续循环,如果省略n表示跳过本次循环,忽略本次循环的剩余代码,进入循环的下一次循环 exit n 退出当前shell程序,并返回n.n也是可以省略 return 返回由shell函数得到的退出值给调用它的脚本 一.关于break,cont

break continue exit return 的区别

讲起这几个shell内置函数,有段搞笑的故事,博主本身学习linux的时候不专心,所以脚本很烂.. 有一天在玩一款拳皇的时候,听到continue一词,让博主很惊讶.至此开启爱上脚本的道路. 上简单的测试 [[email protected] day1]# cat ss.sh #!/bin/bash for ((i=0;i<5;i++)) do if [ $i -eq 3 ] then break #continue #exit fi echo $i;sleep 1done echo "o

[转帖]Shell脚本中的break continue exit return

Shell脚本中的break continue exit return 转自:http://www.cnblogs.com/guosj/p/4571239.html break结束并退出循环 continue在循环中不执行continue下面的代码,转而进入下一轮循环 exit退出脚本,常带一个整数给系统,如 exit 0 return在函数中将数据返回或返回一个结果给调用函数的脚本 我理解为:break是立马跳出循环:continue是跳出当前条件循环,继续下一轮条件循环:exit是直接退出整

for,break,continue,exit

if后接的是命令if rpm -q gcc && id tom||echo "sss"; &&如果前面的命令执行成功则执行&&后的命令否则执行||后面的命令 for 遇空格或回车算一次for i in tom jerry dofor i in *.sh{1..10}相当于1 2 3 4 5 6 7 8 9 10for i in {1..10}seq -w 10 等宽09 10seq 2 2 10 从2到10 每隔一个取一个数for i i

break , continue , exit

break , continue , exit #!/bin/bash . /etc/init.d/functions for i in `seq 1 10`;do if [ $i -eq 3 ];then #continue #没有数字3 break #exit fi echo $i done echo "ok~"

MATLAB循环结构:break+continue+嵌套

break语句:终止当前循环,继续执行循环语句的下一语句: continue语句:跳过循环体的后面语句,开始下一个循环: 例:求[100,200]之间第一个能被21整除的整数 for n=100:200 %循环语句 if rem(n,21)~=0 %选择语句 continue end break end n 程序输出结果为n= 105 循环的嵌套 若一个 数等于它的各个真因子之和,则称该数为完数,如6=1+2+3,所以6是完数.求[1,500]之间的全部完数. for m=1:500 s=0;

循环(for,while,until)与循环控制符(break,continue)

一.for循环 第一种风格   for ((;;;))(类似C语言风格) do command done 例子:for ((i=0;i<10;i++)) do echo $i done 第二种风格   for variable in {list} do command done 例子:for  i  in {1..10..2}   //打印1到10的奇数. do echo $i done a=(1 2 3 9 8 60 625)     //定义数组a for i in ${a[*]}    /

python中break continue exit() pass浅析

1.break break是终止本次循环,比如你很多个while循环,你在其中一个while循环里写了一个break,满足条件,只会终止这个while里面的循环,程序会跳到上一层while循环继续往下走 以简单的for循环来举例 for i in range(10): print("-----%d-----" %i) for j in range(10): if j > 5: break print(j)这里遇到j>5的时候第二层的for就不循环了,继续跳到上一层循环 2.

特殊的流程控制语句break continue exit

break语句可以结束当前的for.foreach.while.do-while.或者switch的执行. for($i=1; $i<10; $i++) { if($i == 5) { echo "到此结束了哦"; break; } echo $i."<br />"; } continue语句 for($i=1; $i<10; $i++) { if($i == 5) { echo "跳过等于5的,不会输出5!"; cont