shell脚本基础巩固(6)

while命令

while命令,也是一个循环命令,while后面后跟着一个条件,当满足条件(退出状态码为0)时,while内部会一直循环执行,直到直到while后面的条件不满足(退出状态码不为0)时,结束这个while循环。在编写时要注意死循环。示例如下:

执行结果如下:

另外的,while后面可以跟多个命令,而最终决定while循环退出的是最后一个命令的退出状态码。

until命令

until命令和while命令刚好相反,即:until后面的命令返回的退出状态码不为零时,循环会一直执行,当until后面的命令的退出状态码为0时,则退出循环。until后面也可以跟多个命令,而最终决定while循环退出的是最后一个命令的退出状态码。示例如下:

这里使用了两个命令,第一个命令输出当前var的值,第二个命令的退出状态码会作为循环退出的依据,即var小于等于0时。执行结果如下:

注意最后打印的那个0,是echo $var打印的,由于var=0时,虽然循环不会再执行,但是最后会迭代一次来退出循环,所以until后面的命令还会执行一次,而由于最后一个命令的退出状态码为0,所以循环内部的命令不会再执行,最后退出循环。

另外的,之前所有的循环命令都可以根据自己的需要进行循环嵌套。同时还可以利用循环嵌套处理文件数据,对某文件中的数据逐行遍历,然后对行再进行遍历。在遍历过程中可以自己定义字段分隔符。

控制循环

  • break命令:退出整个循环
  • continue命令:退出某次循环

这两个命令和其他的编程语言用法一样,需要在循环内部使用,当达到某种条件时执行break或者continue。有一点需要注意,break和continue默认都是退出距离自己最近的一层循环,如果要退出多层循环,可以使用:

break n
# or
continue n

其中n代表要跳出的循环层数,默认情况下,n=1。

处理循环的输出

在shell脚本中,可以对循环的输出使用管道(|)或者重定向(>),可以通过在done命令之后添加一个命令来实现,实例展示重定向如下:

执行后,查看output1.txt文件内容如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值