7.3 shell脚本中的循环命令

1.for命令

格式:

for var in list

do

    commands

done

在list参数中,需要提供迭代中要用到的一系列值。

在每次迭代中,变量var会包含列表中的当前值。第一次迭代会使用list中的第一个值,第二次使用list中的第二个值,以此类推,直到列表中的所有值都过一遍。

在do和done语句之间输入的命令可以是一条或多条标准的bash shell命令。

1.1 读取列表中的值

for命令最基本的用法就是遍历for命令自身所定义的一系列值。

for test in a b c d e f

do

    echo The test is $test

done

for循环假定每个值都是用空格分隔开的。如果在单独的数据值中有空格或单引号,就必须用双引号将这些值圈起来。

for test in ab "c d"  "ef g" "h'ijk"

do

    echo The test is $test

done

(注:在某个值两边使用双引号时,shell并不会将双引号当成值的一部分。)

1.2 从变量读取列表

用for循环遍历变量中的整个列表。

如:

list="a b c d ef h"

list=$list" ijk"

for var in $list

do

    echo This var is $var

done

2.while命令

while命令允许定义一个要测试的命令,然后循环执行一组命令,只要定义的测试命令返回的是退出状态码0。在测试命令返回非零的退出状态码是,while命令会停止执行那组命令。

格式:

while  test cmd

do

    other cmds

done

whiel命令的关键在于所指定的test cmd的退出状态码必须随着循环中运行的命令而改变。如果退出状态码不发生变化,while循环就将一直不停地进行下去。

3.until命令

until命令和while命令的工作方式完全相反。until命令要求你指定一个通常返回非零退出状态码的测试命令。只有测试命令的退出状态码不为0,bash shell才会执行循环中列出的命令。一旦测试命令返回了退出状态码0,循环就结束了。

格式:

until test cmds

do

other cmds

done

4.嵌套循环

循环结构之间可以相互嵌套。

5.控制循环

5.1 break命令

break命令可以退出任意类型的循环。

break命令还可以接受单个命令行参数值,break n

其中n指定了要跳出的循环层数,默认情况下,n=1,表明跳出的是当前循环。

如果n=2,break命令就会停止下一级的外部循环。

5.2 continue命令

用于中止某次循环中的命令,但不会完全终止整个循环。

6.处理循环的输出

在shell脚本中,可以对循环的输出使用管道或进行重定向。这可以通过在done命令后添加一个处理命令来实现。

如:done > output.txt

这样shell会将循环的结果重定向到文件output.txt中,而不是显示在屏幕上。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值