【原创】shell学习笔记第五天(循环) – 21运维
通知: .-...

【原创】shell学习笔记第五天(循环)

shell 21运维 1883浏览 0评论
 今天学习了点shell中的循环部分,经常遇到一些脚本遇到根据条件进行判断(往往需要遍历或判断有点久的操作),当满足条件的时候才完成需要的操作。那么循环就用到了。

1,while  do done:
while [ condition ]  <==中括号内的状态就是判断式

do            <==do 是循环的开始!
 程序段落
done          <==done 是循环的结束
 
while 的中文是『当….时』,所以,这种方式说的是当 condition 条件成立时,就进行循环,直到 condition 的条件不成立才停止的意思。
一个简单的例子:
#!/bin/bash
# test while [] do done
while [ “$y” != “yes” -a “$y” != “YES” ]
do
read -p “please input yes or YES to stop this program:” y
done
echo “haha”
当输入yes或者YES的时候就满足条件了,这个时候循环就终止。如果不是这两个值,就一直循环要求提示输入。
 
 
until do done:
until [ condition ]
do
 程序段落
done
 
它说的是当 condition 条件成立时,就终止循环, 否则就持续进行循环的程序段。
下边下一个简单的例子:
#!/bin/bash
until [ “$yn” == “yes” -o “$yn” == “YES” ]
do
read -p “Please input yes/YES to stop this program: ” yn
done
echo “OK! you input the correct answer.”
 
 
2,for…do…done  var是一个变量,后边是一个内容集群。

for $var in [list]
do
statments
done
 
理解:
for var in con1 con2 con3 …
do
 程序段
done
 

这个 $var 的变量内容在回圈工作时:

  1. 第一次回圈时, $var 的内容为 con1 ;
  2. 第二次回圈时, $var 的内容为 con2 ;
  3. 第三次回圈时, $var 的内容为 con3 ;
  4. ….
 一个简单的for例子:
#!/bin/bash
#test for do done
for day in zhouyi zhouer zhousan zhousi zhouwu zhouliu zhouri
do
echo “one week contains : $day”
done
执行结果:
[[email protected] ~]# ./for1.sh
one week contains : zhouyi
one week contains : zhouer
one week contains : zhousan
one week contains : zhousi
one week contains : zhouwu
one week contains : zhouliu
one week contains : zhouri

for 的另一种写法,这种方式应该很熟悉了,一开始接触c语言的时候就经常搞。
for (( 初始值; 限制值; 运行步阶 ))
do
	程序段
done

这种语法适用于数值方式的运算当中,在 for 后面的括号内的三串内容意义为:

  • 初始值:某个变量在回圈当中的起始值,直接以类似 i=1 配置好;
  • 限制值:当变量的值在这个限制值的范围内,就继续进行回圈。例如 i<=100;
  • 运行步阶:每作一次回圈时,变量的变化量。例如 i=i+1。

 

下边一个简单的例子理解下:
#!/bin/bash
s=0
for ((i=0; i<=100; i=i+1))
do
s =$(($s +$i))
done
echo  “1+2+….+ $i:=”  $s
 
 
 
 
 
 
 
 

 

转载请注明:21运维 » 【原创】shell学习笔记第五天(循环)

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址