bash的比较分类

来源:互联网 发布:宏业软件最新版本 编辑:程序博客网 时间:2024/05/21 01:46
测试方法:
        [ expression ]
        [[ expression ]]
        test expression

bash中常用的条件测试:
        1. 整数测试
        2. 文件测试
        3. 字符串比较测试
整数测试:
        -eq:测试两个整数是否相等;比如 $A -eq $B,如果A与B变量的值相等,则返回0,否则返回非0值
        -nq:测试两个整数是否不等;相等为假,不等为真
        -gt:测试一个数是否大于另一个数;大于为真,否则为假
        -lt:测试一个数是否小于零一个数;小于为真,否则为假
        -ge:测试一个数是否大于或等于另一个数;大于或等于为真,否则为假
        -le:测试一个数是否小于或等于另一个数;小于或等于为真,否则为假

        INT1=34
        INT2=44
        [ $INT1 -eq $INT2 ]
        [[ $INT1 -eq $INT2 ]]
        test $INT1 -eq $INT2

        if [ grep "^USERNAME\>" /etc/passwd ]; then #这种写法是错误的
        if grep "^USERNAME\>" /etc/passwd ; then #改成这种写法

文件测试:
        -e FILENAME:文件是否存在
        -f FILENAME:测试文件是否是普通文件
        -d FILENAME:测试指定路径是否为目录
        -r FILENAME:测试当前用户对指定文件是否有读权限
        -w FILENAME:测试当前用户对指定文件是否有写权限
        -x FILENAME:测试当前用户对指定文件是否有执行权限

字符串比较测试:
        ==或=:相等性测试,相等为真,不等为假 [ $A == $B ], 等号两端必须有空格
        !=:测试是否不等,不等威震,相等为假
        >:
        <:
        -z string:测试指定字符串是否为空,空则真,不空则假
        -n string:测试指定字符串是否不空,不空为真,空为假
0 0