Linux学习—循环(loop)
除了if…then…fi这种条件判断是之外,循环可能是程序当中最重要的一环了。循环可以不断地执行某个程序段落,直到用户设置的条件达成为止。循环有“条件的完成”,也有固定跑多少次的循环,可称为固定循环的状态。1 while do done,until do done(不定循环)while [condition]do(do是循环的)程序段落done(done是循环的结束)...
除了if…then…fi这种条件判断是之外,循环可能是程序当中最重要的一环了。循环可以不断地执行某个程序段落,直到用户设置的条件达成为止。循环有“条件的完成”,也有固定跑多少次的循环,可称为固定循环的状态。
1 while do done,until do done(不定循环)
while [condition]
do (do是循环的)
程序段落
done (done是循环的结束)
while的中文是“当…时",所以,这种方式说的是当condition条件成立时,就进行循环,直到condition的条件不成立才停止的意思。还有一种不定循环的方式:
until [condition]
do
程序段落
done
这种与while相反,说的是当condition条件成立时,就终止循环,否则就持续进行循环的程序段。是否刚好相反啊。
示例1:让用户输入yes或者YES才结束程序的执行,否则就告诉用户输入字符串。
下面用while进行练习:
vim sh13.sh
执行结果
下面使用until进行练习
测试结果:
示例2:计算1+2…+100。
执行结果:
注意: $ 0 :就是该bash文件名,个位数的,可直接使用数字,但两位数以上,则必须使用 {} 符号来括住,如${10}.
2 for…do…done(固定循环)
相对于while,until 的循环方式是必须要”符合某个条件“状态,for这种语法则是”已经知道要进行几次循环“的状态!,它的语法是:
for var in con1 con2...
do
程序段
done
上面的例子就是,$var变量内容在循环工作时:
1.第一次循环时, $var的内容时con1;
2.第二次循环时, $var的内容是con2;
…
示例1:有三种水果apple、pear、graph,需要每一行输出There are fruits…
执行结果:
示例2:由于系统上面的各种账号都是写/etc/passwd内的第一个字段,你能不能通过管道命令的cut找出单纯的账号名称后,以id及finger分别检查用户的标识符与特殊参数呢?由于不同的Linux系统上面的账号都不一样!此时实际去获取/etc/passwd并使用循环处理。
示例3: 让用户输入目录文件名,找出目录内的文件名的权限
vim sh17.sh
执行结果:
3 for…do…done的数值处理
for循环的另一种写法
for ((初始值;限制值;执行步长))
do
程序段
done
这种语法适合于数值方式的运算中,在for后面的括号内三串内容意义为:
1)初始值:某个变量在循环当中的初始值,直接以类似i=1设置好;
2)限制值:当变量的值在这个限制值范围内,就继续进行循环,例如i<=100;
3)执行步长:每做一次循环时变量的变化值。例如i=i+1。
值得注意:在执行步长的设置上,每次增加1,就使用类似”i++“的方式
示例:以这种方式进行1累加到用户输入的循环
vim sh18.sh
执行结果:
更多推荐
所有评论(0)