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

  • 相关阅读:
    那些花儿
    RIATest 安装与破解
    是什么让你的ExtJS应用程序运行缓慢?
    企业级系统架构的理解
    ExtJS 4.0.1发布:提高性能和错误修复
    ExtJS 4动态加载组件
    Step by Step WebMatrix网站开发之二:使用WebMatrix(3)
    四大类NoSQL数据库
    ExtJS 4中动态加载的路径设置
    性能提高和支持IE 9的新的ExtJS发布版:4.02和3.4
  • 原文地址:https://www.cnblogs.com/Blog-day/p/My_Blog_Days-31.html
Copyright © 2011-2022 走看看