shell编程-循环语句

一、for语句

for循环语句有两种格式,分别如下:

(一)for in语句

for var in list 
do
    commands
done

list代表要循环的值,在每次循环的时候,会把当前的值赋值给var(变量名而已,随意定), 这样在循环体中就可以直接通过$var获取当前值了。list里面的值默认以空格分割,可以通过环境变量IFS控制

实例1:

  1 #!/bin/bash
  2 
  3 for i in 1 2 3 4 5
  4 do
  5     echo $i
  6 done

输出结果:

exbot@ubuntu:~/liyijun$ source for.sh 
1
2
3
4
5

实例2:

  1 #!/bin/bash
  2 list="a b c d"
  3 for str in $list
  4 do
  5     echo $str
  6 done

输出结果;

exbot@ubuntu:~/liyijun$ source for.sh 
a
b
c
d

(2)C语言风格的for循环

  1 #!/bin/bash
  2 
  3 for(( i=0;i<11;i++ ))
  4 do
  5     echo $i
  6 done

输出结果:

exbot@ubuntu:~/liyijun$ source for.sh 
0
1
2
3
4
5
6
7
8
9
10

二、while语句

其基本格式如下:

while command 
do
    commands
done

可以看出来其判断依然是一个命令执行之后的返回状态,这一点跟if控制语句一样,所以理所当然,也会有test、双括号等。

实例1:

  1 #!/bin/bash
  2 
  3 i=0
  4 while (( $i<5 ))
  5 do
  6    # i=$[$i+1]
  7    (( i++ ))
  8     echo $i
  9 done

这个地方处理类似于c语言的i++有好多种方法,可以参考下面的博客:

https://blog.csdn.net/agent_007/article/details/52265819?locationNum=2&fps=1

三、使用break和continue来控制循环

(一)、break的两种用法

  • break   用来跳出最近的循环
  • break n   n是一个整数,代表跳出当前循环的外层的第几层循环

实例1:

  1 #!/bin/bash
  2 
  3 for(( i=0;i<11;i++ ))
  4 do
  5     if (( i==5 ))
  6     then
  7         break
  8     fi
  9     echo $i
 10 done

输出结果:

exbot@ubuntu:~/liyijun$ source for.sh 
0
1
2
3
4

 实例2:

#!/bin/bash
j=0
while (( j<5 ))
do
	(( j++ ))
	echo "j = $j"
	for(( i=0;i<2;i++ ))
	do
	    if (( j==3 ))
	    then 
		break 2
	    fi
	    echo "i = $i"
	done
done

输出结果;

j = 1
i = 0
i = 1
j = 2
i = 0
i = 1
j = 3

(二)、coutinue

continue表示终止当前的一次循环,进入下一次循环,注意,continue后面的语句不会执行。其用法和break类似,不再赘述。

REF:

https://www.cnblogs.com/dongying/p/6376166.html

猜你喜欢

转载自blog.csdn.net/wwwlyj123321/article/details/81667444