• [shell基础]——整数比较;字符串比较;文件测试;逻辑测试符


    整数比较
    方法一:[  ] 或 [[  ]]
       (1) 此方法需要使用整数比较运算符。[标注:equal 等于   greater 大于   less-then 小于]

        

      (2) 使用时一定要注意前后一定要有的空格:[  num1 -eq num2  ]   [[  num1 -eq num2  ]]

    方法二:((  ))
      (1) 此方法使用的是类似数学运算比较的运算符:==  >=  <=  !=  

    # a=2;b=3
    # [ $a -eq $b ];echo $?
    1
    # [ $a -lt $b ];echo $?
    0
    # (($a==$b));echo $?
    1
    # (($a<=$b));echo $?
    0
    # (($a!=$b));echo $?
    0
    # ((10-2==8));echo $?
    0
    # ((10-2!=8));echo $?
    1
    

    字符串比较

    方法一:[ ] 或 [[  ]] 

      (1) 使用的比较运算符是:=  !=
      (2) 如果要使用通配符,要用[[ ]]
      (3) 写的时候一定要注意等号两边都要有空格

    # string0="";string1="abc"
    ===判断字符串是否为空===
    # [ -z $string0 ];echo $?
    0
    # [ -z $string1 ];echo $?
    1
    
    # [ $string1 = "abc" ];echo $?
    0
    # [ $string1 != "abc" ];echo $?
    1
    
    # [[ $string1 = ??? ]];echo $?
    0
    # [[ $string1 = a* ]];echo $?
    0
    

    方法二:test

    -z  判断字符串是否为空,若为空则为真
    -n  判断字符串是否为不空,若为不空则为真
     

    文件测试

    文件类型判断:
    -e   测试目录或文件是否存在(exist)
    -f    测试该文件名是否存在且为文件(file)
    -d   测试该文件名是否存在且为目录(directory)
    -L   测试该文件名是否存在且为链接文件(Link)
    -b   测试该文件名是否存在且为块设备(block)
    -c   测试该文件名是否存在且为字符设备
    -p   测试该文件名是否存在且为管道文件

    文件权限判断:
    -s   测试文件是否存在且内容非空(应当注意有1个空格也是非空)
    -r    测试当前用户是否有可读权限
    -w   测试当前用户是否有可写权限
    -x    测试当前用户是否有可执行权限
    -u    测试文件名是否存在并且具有SUID属性
    -g    测试文件名是否存在并且具有SGID属性
    -k    测试文件名是否存在并且具有Sticky属性


    逻辑操作符

    -a 逻辑与:操作符两边均为真,结果为真,否则为假。
    -o 逻辑或:操作符两边一边为真,结果为真,否则为假。
    !   逻辑否:条件为假,结果为真.

    测试判断常配合if/else语句使用,看看写法:
    if [ -w file1 -a -w file2 ]
    if [ $? -eq 0 ]
    then
        echo "file1 file2 have write permisson"
    else
        echo "file1 file2 have not w permisson"
    fi
    
    if [ -d /tmp/dir1 ]
    then
        echo "the dir1 is existed"
    else
        echo "the dir1 is not existed"
        mkdir /tmp/dir1
    fi
    


     



  • 相关阅读:
    LAMP LNMP 和 LNMPA
    nginx版本如何选择?
    如何看apache的版本号
    CLR Via CSharp读书笔记(12):泛型
    要先怀疑外部代码的错误,再检测是不是自己代码的问题
    redis的那些事
    An Illustrated Guide to SSH Agent Forwarding
    Using sshagent with ssh
    dtach
    [原创]bind DNS IP列表的精确获取
  • 原文地址:https://www.cnblogs.com/snsdzjlz320/p/5707638.html
Copyright © 2020-2023  润新知