700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > linux shell 循环语句 for while until

linux shell 循环语句 for while until

时间:2018-10-20 08:16:41

相关推荐

linux shell 循环语句 for while until

for/do/done

Shell脚本的for循环结构和C语言很不一样,它类似于某些编程语言的foreach循环。例如:

#! /bin/shfor FRUIT in apple banana pear; doecho "I like $FRUIT"done

FRUIT是一个循环变量,第一次循环$FRUIT的取值是apple,第二次取值是banana,第三次取值是pear。再比如,要将当前目录下的chap0、chap1、chap2等文件名改为chap0~、chap1~、chap2~等(按惯例,末尾有~字符的文件名表示临时文件),这个命令可以这样写:

for FILENAME in chap?; do mv $FILENAME $FILENAME~; done

也可以这样写:

for FILENAME in `ls chap?`; do mv $FILENAME $FILENAME~; done

#! /bin/bash# 打印乘法表for i in `seq 1 9`dofor j in `seq 1 $i`do res=`expr $j \* $i`echo -e "$j*$i=$res\t\c"done echo -e " "done

while/do/done

while的用法和C语言类似。比如一个验证密码的脚本:

#! /bin/shecho "Enter password:"read TRYwhile [ "$TRY" != "secret" ]; doecho "Sorry, try again"read TRYdone

until/do/done

unti 循环和 while 循环恰好相反,当判断条件不成立时才进行循环,一旦判断条件成立,就终止循环。

Shell until循环的用法如下:

until conditiondostatementsdone

condition表示判断条件,statements表示要执行的语句(可以只有一条,也可以有多条),dodone都是 Shell 中的关键字。

until 循环的执行流程为:

先对 condition 进行判断,如果该条件不成立,就进入循环,执行 until 循环体中的语句(do 和 done 之间的语句),这样就完成了一次循环。每一次执行到 done 的时候都会重新判断 condition 是否成立,如果不成立,就进入下一次循环,继续执行循环体中的语句,如果成立,就结束整个 until 循环,执行 done 后面的其它 Shell 代码。如果一开始 condition 就成立,那么程序就不会进入循环体,do 和 done 之间的语句就没有执行的机会。

注意,在 until 循环体中必须有相应的语句使得 condition 越来越趋近于“成立”,只有这样才能最终退出循环,否则 until 就成了死循环,会一直执行下去,永无休止。

#!/bin/bashi=1sum=0until ((i > 100))do((sum += i))((i++))doneecho "The sum is: $sum"

运行结果:

The sum is: 5050

break和continue

break[n]可以指定跳出几层循环,continue跳过本次循环步,没跳出整个循环。

break跳出,continue跳过。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。