Linux--Shell循环结构

  上篇博客讲了http://blog.xiaoxiaomo.com/2016/03/06/Linux-Shell条件判断及算术运算/,本篇博客主要讲解,for循环结构体和while循环结构,语法结果和Java都很类似,容易学习,只需记住一些小小的差别即可。

for循环

通过使用一个变量去遍历给定列表中的每个元素,在每次变量赋值时执行一次循环体,直至赋值完成所有元素退出循环

  • 语法:

    for ((初始值;限制值;执行步长))
    do
      //….
    done

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

#####格式1
for ((i=0;i<10;i++))
do
//...
done

#####格式2
for i in 0 1 2 3 4 5 6 7 8 9
do
//...
done


#####格式3
for i in {0..9}
do
//...
done

注意:for i in {0..9} 等于for i in {0..9..2}
  1. 初始值 : 某个变量在循环中的起始值,直接以类似i=1的方式设置好。
  2. 限制值 : 当变量值在这个限制值的范围内,就继续进行循环。例如:i<=10
  3. 执行步长 : 每做一次循环时变量的变化量。例如:i++
  • eg : 事例
1
2
3
4
5
6
7
8
#!/bin/bash
s=0
for (( i=1; i<=10; i++ )) #必须使用双括号
do
((s=$s+i)) #必须使用(()),在双括号中可以进行算数运算。
done
echo "sum:" $s
exit 0

while循环

适用于循环次数未知,或不便用for直接生成较大的列表时

  • 第一种格式:
1
2
3
4
5
6
while [ condition ]
do
程序段
done

#这种方式中,当condition条件成立时,就进行循环,直到condition的条件不成立才停止。
  • 第二种格式:

    1
    2
    3
    4
    5
    6
    7

    until [ condition ]
    do
    程序段
    done

    #这种方式和while相反,它就是说“当condition条件成立时,就终止循环,否则就持续执行循环的程序段”。
  • eg :

1
2
3
4
5
6
7
8
#!/bin/bash

#while循环

while [ "$1" == "xiao" ] || [ "$1" == "xiaomo" ]
do
echo " xiaoxiaomo:"+ $1
done

循环控制命令

  • break

break命令是在处理过程中跳出循环的一种简单方法,可以使用break命令退出任何类型的循环,包括while循环和for循环

  • continue
    continue命令是一种提前停止循环内命令,而不完全终止循环的方法,这就需要在循环内设置shell不执行命令的条件

当前网速较慢或者你使用的浏览器不支持博客特定功能,请尝试刷新或换用Chrome、Firefox等现代浏览器