您的位置:首页 > 运维架构 > Shell

shell编程学习笔记(十一):Shell中的while/until循环

2020-01-15 08:40 381 查看

shell中也可以实现类似java的while循环

 

while循环是指满足条件时,进行循环

示例:

1 #! /bin/sh
2 index=10
3 while [ $index -gt 0 ]
4 do
5 index=$((index-1));
6 echo $index
7 done

while循环以whille开始,循环体以do开始,以done结束

注意第5行的代码,表达式index-1外面添加了$(()),如果不添加$(())的话,会报错,因为这里index是字符串,得到的结果不是9,而是10-1

第5行的index-1也可以写成--index,这个跟java语言一致。

 

我把上面的代码稍做修改:

#! /bin/sh
index=0
while [ $index -gt 0 ]
do
index=$((index-1));
echo $index
done

执行这段代码并不会输入任何内容,说明必须满足条件才会执行,不存在循环第1条时必定会执行的情况

 

为了运算index-1,上面使用了$(()),不然只会当字符串来处理,当然了,可以使用declare -i index=10直接把index声明为整体:

#! /bin/sh
declare -i index=10
while [ $index -gt 0 ]
do
index=index-1;
echo $index
done

 

declare的参数声明:

  • +/-  "-"可用来指定变量的属性,"+"则是取消变量所设的属性。
  • -f  仅显示函数。
  • r  将变量设置为只读。
  • x  指定的变量会成为环境变量,可供shell以外的程序来使用。
  • i  [设置值]可以是数值,字符串或运算式。

 

until循环刚好跟while循环相反,是指不满足条件时,进行循环

 

示例:

#! /bin/sh
declare -i index=10
until [ $index -lt 0 ]
do
echo $index
index=index-1;
done

以上示例执行时,会从10开始循环输出,输出到0,结束。

转载于:https://www.cnblogs.com/modou/p/10546063.html

  • 点赞
  • 收藏
  • 分享
  • 文章举报
diejiankuai3444 发布了0 篇原创文章 · 获赞 0 · 访问量 4104 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: