• (九)shell之test [[]]命令


    ==、>、< 在大部分编程语言中都用来比较数字,而在 Shell 中,它们只能用来比较字符串,不能比较数字
    其次,不管是比较数字还是字符串,Shell 都不支持 >= 和 <= 运算符,

    那么在shell中,数值和字符串的比较是怎样的?

    (1)数值比较
      -gt : >
      -lt : <
    
      -ge : >=
      -le : <=
    
      -eq : 是否相等
      -ne : 是否不相等
    
    (2)字符串比较
      -z str : 是否为空
      -n str : 是否为非空
    
      str1=str2   str1==str2 : 是否相等
      str1!=str2 : 是否不相等
    
      str1>str2 : 是否大于
      str1<str2 : 是否小于
    

     

    [[]] 命令

    • test 与 [[]] 类似,检测某个条件是否成立 
    • [[]] 是 test的升级版本 
    • [[ condition ]] , condition两边都是有空格 
    • 条件成立时,退出状态为0, exit:0 成功 非0 失败
    • [[]]可以不使用-o -a选项,直接用|| &&, 总体来说,[[]]比test更趋于正常编程
    • 支持正则表达式 [[ str=~regex ]]
    • 与test的区别是,test限制的事项,[[]]不必限制
    1. 不需要把变量名用""包围起来,即便是空,也不会报错
    2. 不可以对>,<转义
     10 
    if [[ -z $a ]] || [[ -z $b ]]
    then
            echo "不能为空"
    elif [[ $a<$b ]]
    then
            echo "a小于b"
    else
            echo "a大于b"
    fi
    
    #test写法
    
    read t1
    read t2
    if test -z $t1 || test -z $t2 
    then
            echo "t1 或 t2 为空"
    elif test $t1 < $t2 #等同于 $t1 -lt $t2
    then
            echo "t1小于t2"
    else
            echo "t1大于t2"
    fi 

    详情参考: http://c.biancheng.net/view/2742.html

    做一个优秀的程序媛
  • 相关阅读:
    java实现微信红包分配算法
    认识J2SE
    java设计模式(2)
    java设计模式(1)
    模拟做饭系统(java+线程中的join方法)
    学习接水系统(java+thread线程)
    1. linux系统简介
    Codeforces Round #350 (Div. 2)解题报告
    2014蓝桥杯决赛解题报告
    末学者笔记--Python函数一玄
  • 原文地址:https://www.cnblogs.com/oytt/p/13491527.html
Copyright © 2020-2023  润新知