1. 循环的目的是重复某段指令,主要用于数组、多个文件和变量的操作。
2. Bash中有三类循环语句:for, while和until语句。
2.1 for 语句
for语句有两种结构:
(1):
for list in data_list; do command; done
这里可以对 data_list来做一个探讨,
datalist可以是{1,2,3,10},{1..10}, 1 2 3 4,
datalist不可以是{1..3,4,5}, (1,2,3),[1,2,3],{1 2 3 4}
而上述表达式中 list不可以写为$i这种形式,只能写为变量的名称。有一种方式在Bash4.0+以上的版本中可以使用,{1..10..2} 即输出1~10中的所有的奇数,但是在以下的版本中并没有这种功能。
比较特殊的有
- for i in $(seq 1 2 20); do command; done
- for i in $(seq 1 -2 -10);do command; done
也可以写为
- for i in `seq 1 2 10`; do echo $i; done;
这里``和$()这两个符号是专门用来为当中包括bash中的命令而配备的。
(2) :
- for (( exp1; exp2; exp3)); do command; done
这里exp1为计数器的初始化;exp2为循环终止判断语句;exp3为计数器累加操作。比较典型的有((i=0;i<=10;i++))和((i=0;i>=-10;i--))
注意:以下书写风格可以作为替代(注意分号的位置)
- (1***)for _________
- do command; done
- (2***)for _________
- do command
- done
- (3***)for _________
- do
- command
- done
2.2 while语句
while语句的一般表达为
- while [ condition ] or [[ condition ]] #cannot be {}or ()
- do
- command
- done
特别值得注意的是:这里[ ]内的表达式不能与[或]紧靠,否侧程序报错。通常的command中的计数器需要累加, 可以为 ((i++))和((i--))。
2.3 until 语句
until语句基本上是与while一样的使用方法,不同的是while的condition满足的时候程序会进行下去,而until的condition不满足的时候程序会进行下去。