1. 循环的目的是重复某段指令,主要用于数组、多个文件和变量的操作。

2. Bash中有三类循环语句:for, while和until语句。

2.1 for 语句

for语句有两种结构:

(1):

  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中的所有的奇数,但是在以下的版本中并没有这种功能。

比较特殊的有 

  1. for i in $(seq 1 2 20); do command; done 
  2. for i in $(seq 1 -2 -10);do command; done 

也可以写为

  1. for i in `seq 1 2 10`; do echo $i; done; 
  

这里``和$()这两个符号是专门用来为当中包括bash中的命令而配备的。

(2)   : 

  1. for (( exp1; exp2; exp3)); do command; done 

这里exp1为计数器的初始化;exp2为循环终止判断语句;exp3为计数器累加操作。比较典型的有((i=0;i<=10;i++))和((i=0;i>=-10;i--))

注意:以下书写风格可以作为替代(注意分号的位置)


  1. (1***)for _________ 
  2.  
  3.       do command; done 
  4. (2***)for _________ 
  5.       do command 
  6.       done
  7. (3***)for _________
  8. do
  9. command
  10. done

 

2.2 while语句

while语句的一般表达为


  1. while [ condition ] or [[ condition ]] #cannot be {}or () 
  2. do 
  3. command 
  4. done 

特别值得注意的是:这里[  ]内的表达式不能与[或]紧靠,否侧程序报错。通常的command中的计数器需要累加, 可以为 ((i++))和((i--))。

2.3 until 语句

until语句基本上是与while一样的使用方法,不同的是while的condition满足的时候程序会进行下去,而until的condition不满足的时候程序会进行下去。