西数超哥博客
运维经验教程分享

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

 今天学习了点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

执行结果:
[root@localhost ~]# ./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
 
 
 
 
 
 
 
 

 

转载请注明:西数超哥博客www.ysidc.top» 【原创】shell学习笔记第五天(循环)

https://www.ysidc.top 西数超哥博客,数据库,西数超哥,虚拟主机,域名注册,域名,云服务器,云主机,云建站,ysidc.top

赞(0)
声明:本站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,若涉及侵权请及时告知,将会在第一时间删除。本站原创内容未经允许不得转载:西数超哥博客 » 【原创】shell学习笔记第五天(循环)