shell中的循环结构

shell中的循环结构有:for,while和until(while和until的语法结构、设计思路基本一致,因此归为一类讨论)


for

for循环有两种形态:

1.列表形态,形如:

for var in varlist; do
  command 1
  ...
  command n
done

其思路是:用var依次读取varlist中的各元素,因此循环次数取决于varlist的长度

这里的varlist可以直接写出来,也可以是变量替换${ }或命令行替换$( )(想想command处理流程中对meta的重组)

若缺省in varlist,则其值将从$*(或$@)中获得

直接写varlist的例子如下:

for var in aa bb cc dd ee ff; do
  echo "now is ${var}"
done

2.循环计数形态,形如:

for (( i=1; i<=100; i++ )); do
  command 1
  ...
  command n
done
循环技术形态的设计思路和C语言很相似

这里利用到了(( ))的数值测试条件功能和变量值自增减功能(详见《${ },$( )和$(( ))》、《shell中的测试条件》)


while

1.while循环利用“测试条件”控制循环,其结构为

while [ ... ]; do
  command 1
  ...
  command n
done

2.until相当于对while取反,其表示:循环一直运行,“直到"测试条件成立才终止


break和continue

1.shell中的break和continue比C语言更灵活,因为二者可以指定目标循环层,举例说明

for ...; do  #记为loop A
  for ...; do  #记为loop B
    break  #只退出loop B,但仍在loop A中(break的默认参数为1,1代表当前循环层)
  done
done
for ...; do  #记为loop A
  for ...; do  #记为loop B
    break 2  #直接退出loop A
  done
done
break和continue的缺省参数为1, 参数n表示从里向外数的第n层循环


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值