码迷,mamicode.com
首页 > 系统相关 > 详细

Shell脚本编程之循环语句

时间:2018-03-25 19:53:38      阅读:231      评论:0      收藏:0      [点我收藏+]

标签:for   while   until   case   

  • for
  • while
  • if
  • case

  • 1. for用法1

        for 变量 in 值1 值2 值3..;do  
                 执行语句 
        done
    • 用法2

      for 变量 `命令`;do                 #  可以引用命令执行结果
              执行语句
      done
    • 用法3

      for ((初始值;循环控制;变量变化));do
              执行语句
      done   #C语言风格的for循环用法

      for循环示例(1+2+3+..+100=?)

      #!/bin/bash
      sum=0                              # 初值为0
      for  ((i=1;i<=100;i++));do
              sum=$(( $sum + $i))    # 初值+i 并刷新sum值
      done
      echo "1+2+3+..+100=$sum"
    1. while循环,重复次数是利用一个条件来控制是否继续执行这个语句,为了避免死循环,必须保证循环体中包含循环出口条件(存在退出状态)

      #!/bin/bash
      sum=0
      i=1           # sum i 赋初值
      while (( i<=100));do       #进入循环体,每循环一次判断一次i的值是否符合(( )) 的条件
              let "sum+=i"
              let "i+=2"
      done
      echo "sum=$sum"
      • 无条件循环

        while true;do
            执行语句

        done # 这个循环语句永远不会跳出,无论什么情况下while判断语句都为真,都会继续执行“执行语句”
        相反,对比while循环,until循环是“满足条件就不执行”
        以1+2+3+..+100=?为例

        until  [ $i -gt 100];do                # 当 i 的值大于100时               sum=$(($sum+$i))
            i+$(($i+1))

        done
        echo "$sum"

    if语句,跟case比较像 ,也是条件判断语句,逻辑比较简单

        #!/bin/bash
        read -p "Please Enter a Number:" number           # 读取终端输入的数字
        if [ $number -eq 1  ];then
                echo "the number is 1 "                                    # 如果输入数字等于 1 ,输出此句
        elif [ $number -eq 2 ]
                echo "the number is 2 "                                    # 如果输入数字等于 2 ,输出此句
        elif [ $number -eq 3 ]
                echo "the number is 3"                                     # 如果输入数字等于 2 ,输出此句
        else
                echo "the number is greater than 3 "               # 如果输入的数字都不满足,则输出此句
        fi

    case语句

        #!/bin/bash
        read -p "Please Enter a Number:" number
        case $number in
                1) echo "the number is 1";;
                2) echo "the number is 2 ";;
                3) echo "the number is 3 ";;
                *) echo "the number is greater than 3"
        esac                     # 很容易理解,而且看起来比if 简洁一些,

    Shell脚本编程之循环语句

    标签:for   while   until   case   

    原文地址:http://blog.51cto.com/11742700/2090923

    (0)
    (0)
       
    举报
    评论 一句话评论(0
    登录后才能评论!
    © 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
    迷上了代码!