zoukankan      html  css  js  c++  java
  • shell编程学习笔记(十一):Shell中的while/until循环

    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,结束。

  • 相关阅读:
    用iptables封杀内网的bt软件
    FreeBSD 利用IPFW实现限制局域网使用QQ
    网络安全设备Bypass功能介绍及分析
    活用Windows Server 2008系统的几种安全功能
    恢复mysql管理员密码
    远程控制Windows2003下安装Pcanywhere导致Awgina.dll出错的解决办法
    Ubuntu 11.04 LAMP+JSP环境安装过程
    hbase首次导入大批次的数据成功!
    Chubby是什么?
    DP-Triangle
  • 原文地址:https://www.cnblogs.com/modou/p/10546063.html
Copyright © 2011-2022 走看看