zoukankan      html  css  js  c++  java
  • shell脚本中的流程控制

      Shell中的流程控制与其他语言稍稍不同,主要是不能为空,主要有以下几种:

    1、简单跳转

    if

    语法如下:
    if condition
    then
        command1 
        command2
        ...
        commandN 
    fi

    if  else

    语法如下:
    if condition
    then
        command1 
        command2
        ...
        commandN
    else
        command
    fi

    if else-if else

    语法如下
    if
    condition1 then command1 elif condition2 then command2 else commandN fi

    if else 语句经常与 test 命令结合使用

     1 #!/usr/bin/bash                                                                                                                      
     2 num1=$13 num2=$24 if test $[num1] -eq $[num2]
     5 then
     6     echo "${num1} 和 ${num2} 相等!"
     7 else
     8     echo "${num1} 和 ${num2} 不相等!"
     9 fi 

    测试:

    $  sh testIfEqu.sh 3 4
    34 不相等!

    2、for循环

    for var in item1 item2 ... itemN
    do
        command1
        command2
        ...
        commandN
    done

    3、while循环

    while condition
    do
        command
    done

    无限循环:

    while :
    do
        command
    done
    while true
    do
        command
    done
    for (( ; ; ))

    4、until循环,until 循环执行一系列命令直至条件为 true 时停止;until 循环与 while 循环在处理方式上刚好相反;一般 while 循环优于 until 循环,但在某些时候—也只是极少数情况下,until 循环更加有用

    until condition
    do
        command
    done

    5、case ... esac选择

    casein
    模式1)
        command1
        command2
        ...
        commandN
        ;;
    模式2)
        command1
        command2
        ...
        commandN
        ;;
    esac

    6、循环的跳出break和continue和其他语言一样

     1 #!/usr/bin/bash
     2 while :
     3 do
     4     echo -n "输入 1 到 5 之间的数字:"
     5     read aNum
     6     case $aNum in
     7         1|2|3|4|5) echo "你输入的数字为 $aNum!"
     8         ;;
     9         *) echo "你输入的数字不是 1 到 5 之间的! 游戏结束"
    10             break
    11         ;;
    12     esac
    13 done 
     1 #!/usr/bin/bash                                                          
     2 while :
     3 do
     4     echo -n "输入 1 到 5 之间的数字: "
     5     read aNum
     6     case $aNum in
     7         1|2|3|4|5) echo "你输入的数字为 $aNum!"
     8         ;;
     9         *) echo "你输入的数字不是 1 到 5 之间的!"
    10             continue
    11             echo "游戏结束"
    12         ;;
    13     esac
    14 done 
    ~         
    人就像是被蒙着眼推磨的驴子,生活就像一条鞭子;当鞭子抽到你背上时,你就只能一直往前走,虽然连你也不知道要走到什么时候为止,便一直这么坚持着。
  • 相关阅读:
    在WEB页面中使用Windows Control可行不?
    升级MDMS到2007下啦
    OSS2007与现有系统(asp)如何集成呢
    Directory Class
    P/Invoke能够在ASP.NET中使用吗?
    SPS中的摘要视图下该怎么分页显示信息?
    P/Invoke能够在asp.net 中使用哦
    SVN+AnkhSVN端配置
    利用反射来实现类(含可空字段)的映射
    iis7部署WCF服务应用程序
  • 原文地址:https://www.cnblogs.com/guochaoxxl/p/15261351.html
Copyright © 2011-2022 走看看