zoukankan      html  css  js  c++  java
  • linux学习(十)Shell中的控制语句

    @

    1. 条件测试语句

    测试语句十Shell的特有功能,Shell提供了一组测试运算符,通过这些运算符,Shell程序能够判断某个或者某几个条件是否成立。
    在Shell中用户可以使用测试语句来测试指定条件表达式的条件的真和假。当指定条件为真,条件测试的返回值为0;反之,条件测试的返回值为非0值。条件测试的语法有两种,分别是test命令和[]命令

    1.1 test语句

    test expression
    

    其中,参数expression表示需要进行测试的语句,整个test语句为真,test返回0,若为假,则返回非0

    笔者强烈推荐test语句,[]语句十分糟糕,要求十分严格,会出现各式各样的错误,不利于初学者学习

    1.2[]语句

    [expression]
    

    其中,参数expression的语句与test命令中语法完全相同。条件表达式和左右方括号之间都必须有一个空格

    1.3文件测试

    文件测试指的是根据给出的路径,判断当前路径下的文件属性及类型。

    test op file
    [ op file ]
    
    环境变量 说明
    -a 若文件存在,则条件测试返回结果为0
    -b 若文件存在,且为块文件,则条件测试返回结果为0
    -c 若文件存在,且为字符文件,则条件测试返回结果为0
    -d 若文件存在,且为目录文件,则条件测试返回结果为0
    -e 若文件,则条件测试返回为0
    -f 若文件存在,且为常规文件,则条件测试返回结果为0
    -r 若文件存在且可读,则条件测试返回结果为0
    -w 若文件存在且可写,则条件测试返回结果为0
    -x 若文件存在且可执行,则条件测试返回结果为0
    -p 若文件存在且是FIFO文件,则条件测试返回结果为0
    -s 若文件存在且不是空文件,则条件测试返回结果为0

    1.4字符串测试

    test 操作符 
    
    操作符 说明
    str 判断指定字符串是否为空
    str1==str2 若字符串相等就为0
    -n str 判断字符串是否为非空串,若为空串则测试结果为0
    -z str 若为空串,则测试结果为0

    1.5数值测试

    与字符串类似,数值测试也有两种形式的语法

    test number1 op number2
    

    或者

    [ number1 op number2 ]
    
    操作符 说明
    n1 -eq n2 比较n1是否等于n2,如果等于,则测试结果为0
    n1 -ne n2 若n1不等于n2,则测试结果为0
    n1 -lt n2 比较n1是否小于n2,n1如果小于n2,测试结果为0
    n1 -le n2 比较n1是否小于等于n2,n1如果小于等于n2,测试结果为0
    n1 -gt n2 比较n1是否大于n2,n1如果大于n2,测试结果为0
    n1 -ge n2 比较n1是否大于等于n2,n1如果大于等于n2,测试结果为0

    1.5逻辑操作符

    逻辑操作符相当于c语言中的&&、||、!

    操作符 说明
    !exp 逻辑非,条件表达式为假,则该操作符的运算结果为真
    exp1 -a exp2 逻辑与,条件exp1和exp2的值都为真时,整个表达式为真
    exp1 -o exp2 逻辑或,条件表达式exp1和exp2的值有一个为真,整个表达式为真
    (exp) 圆括号,将表达式分组,优先得到结果
  • 相关阅读:
    WinForm 下的 Wizard(向导) 控件, 提供设计时支持!
    关于安装VS2005或MSDN时遇到“Please insert the disk:XXXXXXX” 错误提示的解决方法!
    Welcome
    Latex 入门教程
    图形学 旋转与投影矩阵3
    图形学 旋转与投影矩阵—2
    算法希尔排序可视化
    图形学 旋转与投影矩阵—1
    BlinnPhong反射模型实践(web实现)
    贝塞尔曲线(面)二三维可视化(Three+d3)
  • 原文地址:https://www.cnblogs.com/lzy321/p/10920125.html
Copyright © 2011-2022 走看看