shell 循环

for 命令
for  var  in  list
do 
command
done
其中list中会包含一系列的值,var会在每次迭代时,赋予 var
一个值,比如第一次迭代会把列表中第一个值赋值给var。


读取列表中的复杂项时,可以使用一下两种方法解决该问题,
1、使用转义字符(反斜线)来将单引号转义。
2、使用双引号来定义用到单引号的值。


更改字段分隔符
特殊的环境变量分隔符IFS:默认是:
空格
制表符
换行符
修改分隔符IFS=$'\n' 这个语句是高速shell在数据值中忽略
空格和制表符。
修改分隔符,在后续的编程中可能会忘记修改回来,因此有以下 
编程方式可以使用
IFS.OLD=$IFS
IFS=$'\n'
IFS=$IFS.OLD
就是先保存老的IFS值,然后在修改这样的值。


for循环
for(( variable assigment; condition ;  iteration  process ))
for (( a = 1;  a < 10; a++))
注意:
1、给变量赋值可以有空格 
2、条件中的变量不以美元符开头
3、迭代过程的算式未用expr命令格式。


while命令基本格式:
while  test   command
do 
other commands
done
while定义了每次迭代时检查的测试条件。条件成立才会遍历
执行定义好的命令。


until命令
until  test  command
do
other commands
done


嵌套循环
循环语句可以在循环内使用任意类型的命令,包括其他循环
命令,这种称为嵌套循环。当你在迭代中使用迭代,命令运行
的次数是乘积关系。


循环处理文件数据
结合一下两种技术一块使用:
1、使用嵌套循环
2、修改IFS环境变量


循环的控制命令:
break
continue
跳出命令循环
有时你在内部循环,但需要停止外部循环,break命令接受
单个命令行参数值:
break  n
其中n说明了要跳出的循环层级,默认情况下,能为1,表明
跳出的是当前循环。如果你将n设为2,break命令就会停止
下一级的外部循环。


处理循环的输出
循环的重定向输出可以在done命令后添加一个处理命令;
done > 1.txt


for命令允许你遍历一系列的值
while命令提供了基于命令条件的循环,使用普通命令或test
命令来测试变量的条件。只有在命令产生退出状态码0时,while
循环才会继续遍历指定的一组命令。
until命令也提供了遍历命令的一种方法,但它的迭代时建立
在有命令产生非零退出状态码的基础上的,这个特性允许你
设置一个迭代结束前都必须满足的条件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值