zoukankan      html  css  js  c++  java
  • Shell中的条件测试和循环语句

    1.条件测试:test或[

    如果测试结果为真,则该命令的Exit Status为0,如果测试结果为假,则命令的Exit Status为0

     运行结果:

    带与、或、非的测试命令
    [ ! EXPR ] : EXPR可以是上表中的任意一种测试条件,!表示逻辑反
    [ EXPR1 -a EXPR2 ] : EXPR1和EXPR2可以是上表中的任意一种测试条件,-a表示逻辑 与
    [ EXPR1 -o EXPR2 ] :EXPR1和EXPR2可以是上表中的任意一种测试条件,-o表示逻辑 或

     2. if/then/elif/else/fi

     Shell中用用if、then、elif、else、fi这几几条命令实现分支支控制

    运行结果:

    Shell还提供了&&和||语法,&&相当于“if...then...”,而||相当于“if not...then...”。

    -a和-o仅用于在测试表达式中连接两个测试条件

    3、case/esac

    Shell脚本的case可以匹配字符串和Wildcard,每个匹配分支可以有若干 条命令,末尾必须以;;结束,执行行时找到第一个匹配的分支支并执行行相应的命令,然后直接跳 到esac之后

    运行结果:

    循环语句

    4、for/do/done

    如下例子:

    运行结果:

    5、while/do/done

    如下例子:

    运行结果:

    6. 位置参数和特殊变量
    有很多特殊变量是被Shell自动赋值的,以下是常用的位置参数和特殊变量
    $0                   相当于C语言言main函数的argv[0]
    $1、$2...          C语言言main函数 的argv[1]、argv[2]...
    以上这些称为位置参数(Positional Parameter)
    $#                    相当于C语言言main函数的argc - 1
    $@                  表示参数列表"$1" "$2" ...,例如可以用用在for循环中的in后面。
    $?                   上一条命令的Exit Status

  • 相关阅读:
    批量给对象属性赋值
    判断linq语句结果是否为空的方法
    linq var出来的object取值问题
    LinQ转换运算符OfType<T>
    C#退出的几种方式
    return的用法
    扩展文字
    Timer的使用方法
    通过16道练习学习Linq和Lambda
    VS2010 无可用源
  • 原文地址:https://www.cnblogs.com/Blog-day/p/My_Blog_Days-31.html
Copyright © 2011-2022 走看看