1. for 循环
(1). for 循环 读取数据的来源
- 读取列表中的值
for i in cao shu ming don\'t known;do echo $i;done
cao
shu
ming
don't
known
- 从变量中获取
list="cao shu ming don\'t known"
for i in $list;do echo $i;done
cao
shu
ming
don\'t
known
- 从命令中读取
cat t
shuming cao
an liu
lin wang zhaoshu
for i in `cat t`;do echo $i;done
shuming
cao
an
liu
lin
wang
zhaoshu
- 从通配符中读取
for i in `ls /etc/cron.d/*`;do echo $i;done
/etc/cron.d/arbitrator
/etc/cron.d/opsc
/etc/cron.d/sysstat
(2). for 循环 列表中的字段分隔符
for 循环默认的字段分隔符有三个:
- 空格
- 制表符
- 换行符
也就是说在list中的三个中任何一个都可以会作为for的一个字段分隔符;就会把字段认为是一个分开;
所以在cat file 时要注意,并非是按照行来分的;
可以用IFS 变量来设置字段分隔符:
IFS.OLD=$IFS
IFS=$'\n' #只有换行符是for的字段分隔符;换行符必须这样写,否则无效
IFS=":" $冒号是for的字段分隔符
IFS=$
(3). for C 模式
for((i=0;i<10;i++))
do
commadn
done
2. while 命令
读取文件: while的重要应用就是按照行来读取文件
while read line;
do
echo $line
done < t
shuming cao
an liu
lin wang zhaoshu
3. until 循环
只有但判断条件返回是0时才退出循环
n=5;until [ $n -eq 0 ];do echo $n; n=`expr $n - 1`;done
5
4
3
2
1
4. 控制循环
循环一旦执行,除非触发了停止的条件否则会一直执行下线;这时我们需要处理一些特殊的情况;
用continue + break跳出循环。