六十九、for循环、while循环、break跳出循环、continue结束本次循环、exit退出整

六十九、for循环、while循环、break跳出循环、continue结束本次循环、exit退出整个脚本

一、for循环

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

案例1

# vim for1.sh

#!/bin/bash

sum=0

for i in `seq 1 100`

do

sum=$[$sum+$i]     //核心语句

echo $i

done

echo $sum

//最后再echo $sum,不能在for循环里echo,不然每次的sum都打印出来了。让它每次都打印出来也没有错,就像下面这么写。

# vim for2.sh

#!/bin/bash

sum=0

for i in `seq 1 100`

do

echo "$sum + $i"

sum=$[$sum+$i]         //核心语句

//第一次循环:0+1=1,第二次循环:1+2=3,第三次循环:3+3=6,以此类推

echo $sum

done

echo $sum

# sh for2.sh  //执行这个脚本可以看出过程。

文件列表循环(用得比较多,对文件做循环)

#!/bin/bash

cd /etc/

for a in `ls /etc/`

do

if [ -d $a ]

then

ls -d $a

fi

done

# for i in `ls ./`; do echo $i" ; done         //for循环这样用的话都作为一个分隔符

二、while循环

语法 while 条件; do 循环的内容 ; done

案例1

#!/bin/bash

while :          //这里冒号就是死循环的意思,也可以写true,一样的效果

do

load=`w|head -1|awk -F 'load average: ' '{print $2}'|cut -d. -f1`  //这条命令会把系统负载赋值到load这个变量里。

if [ $load -gt 10 ]

then

/usr/local/sbin/mail.py|[email protected] "load high" "$load"

fi

sleep 10

done

案例2

#!/bin/bash

while :

do

read -p "Please input a number: " n

if [ -z "$n" ]       //当你输入的变量n取值为空时,然后输出需要输入内容

then    //如果n不为空时,就不执行下面这两条命令,而是执行n1及后面的内容

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        //当是纯数字,就break,跳出这个循环,然后echo $n

done

echo $n

# sh -x while2.sh   //将变量输入为空,再输入英文,都会再次死循环,只有输入纯数字时,才会跳出这个循环。

+ :

+ read -p 'Please input a number: ' n

Please input a number:

+ '[' -z '' ']'

+ echo 'you need input sth.'

you need input sth.

+ continue

+ :

+ read -p 'Please input a number: ' n

Please input a number: aa

+ '[' -z aa ']'

++ echo aa

++ sed 's/[0-9]//g'

+ n1=aa

+ '[' -n aa ']'

+ echo 'you just only input numbers.'

you just only input numbers.

+ continue

+ :

+ read -p 'Please input a number: ' n

Please input a number: 123

+ '[' -z 123 ']'

++ echo 123

++ sed 's/[0-9]//g'

+ n1=

+ '[' -n '' ']'

+ break

+ echo 123

123

三、break跳出循环

#!/bin/bash

for i in `seq 1 5`

do

echo $i

if [ $i == 3 ]        //这里两个等于号正确的写法应该是-eq,比较数字时,就应该用eq,ge,lt这些,当是比较字符串时,就需要用==号了,用eq就不对了。这样写也没问题

then

break

fi

echo $i

done

echo aaaaa

# sh -x break.sh

++ seq 1 5

+ for i in '`seq 1 5`'

+ echo 1

1

+ '[' 1 == 3 ']'

+ echo 1

1

+ for i in '`seq 1 5`'

+ echo 2

2

+ '[' 2 == 3 ']'

+ echo 2

2

+ for i in '`seq 1 5`'

+ echo 3

3

+ '[' 3 == 3 ']'

+ break           //这里不再echo 3了,直接break

+ echo aaaaa

aaaaa

# sh break.sh

1

1

2

2

3

aaaaa

break,continue,用在循环语句里,for或者while都可以

四、continue结束本次循环

忽略continue之下的代码,直接进行下一次循环

#!/bin/bash

for i in `seq 1 5`

do

echo $i

if [ $i == 3 ]

then

continue

fi

echo $i

done

echo $i

# sh continue.sh

1

1

2

2

3        //这里3只echo了一次

4

4

5

5

aaaaa

# sh break.sh

1

1

2

2

3

aaaaa

五、exit退出整个脚本

#!/bin/bash

for i in `seq 1 5`

do

echo $i

if [ $i == 3 ]

then

exit   //这里可以加一个数字,比如2,再echo $?的时候就不是0而是2

fi

echo $i

done

echo aaaaaaa

# sh exit.sh

1

1

2

2

3

到3就结束了,连aaaaa都不输出了

原文地址:http://blog.51cto.com/13576245/2125335

时间: 2024-08-02 10:22:57

六十九、for循环、while循环、break跳出循环、continue结束本次循环、exit退出整的相关文章

for循环while循环break跳出循环continue结束本次循环exit退出脚本

20.10 for循环1到100相加的值执行结果 打印出1-100的数字 if [ -d $a ]thenls -d $afi它相当于 [ -d $a ] && ls $a 上图创建的3空格4.txt是一个文件,查在for语句循环的时候将它拆分成3与4.txt两个文件了,说明for循环是以空格作为分隔符的,这个问题要注意20.11 20.12 while循环需求每隔半分钟检查一下系统的负载,当负载大于10的时候就发一封邮件,隔30 秒执行一次这是一个死循环脚本30秒执行一次这个脚本是让用户

for循环 while循环 break跳出循环 continue结束本次循环 exit退出整

一.for循环需求:计算1-100所有数字的和[[email protected] shell]# vi for1.sh#!/bin/bashfor i in seq 1 100doecho $i //先把100个数字打印出来done[[email protected] shell]# sh for1.sh //执行脚本打印出100个数字 继续修改脚本:[[email protected] shell]# vi for1.sh#!/bin/bashsum=0for i in seq 1 100d

for循环 while循环 break跳出循环 continue结束本次循环 exit退出整个脚本

原文地址:https://www.cnblogs.com/xiaobo-Linux/p/8920368.html

for与while循环、break跳出循环、continue结束本次循环、exit退出脚本

for循环 while循环 break跳出循环 continue结束本次循环 exit退出脚本 原文地址:http://blog.51cto.com/13515599/2106958

shell脚本 for循环、break跳出循环、continue结束本次循环

20.10 for循环 语法:for 变量名 in 条件; do ...; done ;案例1 [[email protected] shell]# cat for.sh #!/bin/bash sum=0 for i in `seq 1 100` do sum=$[$sum+$i] done echo $sum #输出的结果 [[email protected] shell]# sh for.sh 5050 文件列表循环 [[email protected] shell]# cat for2.

for、while循环、break跳出循环、continue结束本次循环、exit退出脚本

for 循环 当变量值在列表里,for循环即执行一次所有命令,使用变量名获取列表中的当前取值.命令可为任何有效的shell命令和语句. 语法:for 变量名 in 条件: do...;done 案例1 #!/bin/bashsum=0 // 给变量sum赋值for i in seq 1 100 // 给i赋值,从1到100dosum=$[ $sum + $i ]// 累加doneecho $sum// 输出结果为1到100的和 案例2 #!/bin/bashcd /etc/ // 切换到/etc

Shell脚本(for循环,while循环,break跳出循环,continue结束本次循环)

for循环 语法:for 变量名 in 条件 : do done: 案例一: 计算1-100所有数字的和. 脚本: #!/bin/bash sum=0 for i in `seq 1 100` do sum=$[$sum+$i] done echo $sum 结果: [[email protected] ~]# sh 1-100.sh 5050 案例二: 列出/etc/sysconfig下所有子目录,并且使用ls -d命令查看. 脚本: #/bin/bash cd /etc/sysconfig

20.10 for循环 20.11/20.12 while循环 20.13 break跳出循环 20.14 continue结束本次循环 20.15 exit退出整个脚本

20.10 for循环 ?语法:for 变量名 in 条件; do -; done ? 案例1 1+2+3..+100的和 #!/bin/bash sum=0 for i in `seq 1 100` // seq 1到100个数字 do sum=$[$sum+$i] echo $i done echo $sum sum 第一次作为变量的时候,是0:当进入for循环里面的时候,每运算一次,sum变量就会改变一次,直至$i 结束:最后输出结果 $sum ? 案例2 文件列表循环 #!/bin/ba

for循环,while循环,break跳出循环,continue结束本次循环,exit直接退出脚本

for循环 语法:for 变量名 in 条件; do -; done 案列1,算出1到10的数字相加等于多少并打印出过程 [[email protected] shell]# cat for1.sh #!/bin/bash sum=0 for i in `seq 1 10` do sum=$[$sum+$i] echo "$sum + $i" done echo $sum [[email protected] shell]# sh -x for1.sh + sum=0 ++ seq 1