shell 脚本学习之五 ------表达式中的参数总结

1894阅读 1评论2012-04-07 fjsm20Linux
分类:Python/Ruby

shell中,对于一些条件的比较,涉及到很多参数。
例如:

  1. #!/bin/bash
  2. a=1
  3. b=2
  4. if [ a -lt b ]
  5. then
  6. echo "$a < $b"
  7. else
  8. echo "$a > $b"
  9. fi
下面将总结下这些参数:
    
对于算术比较运算符
        eq :  等于                例如: 4 -eq 4   如果相等则为真,返回0,之后执行then后语句,反之返回1
        ne :    不等于             例如: 4 -eq 4
        le  :  小于等于           例如: 3 -le  5      
        ge :  大于等于            例如:    5 -ge $num
        lt   :  小于              例如:  5 -lt   $num
        gt  :  大于               例如: 5  -gt  $num
  
对于字符串比较
        -z   :字符串是否为空串       例如: [  -z  $str  ]        如果为空串,则为真,返回为0
        -n   :字符串是否为非空串     例如: [  -n  $str  ] 
        =    :2个字符串是否相同      例如: [  $str1 =  $str2 ] 
        !=   : 2个字符串是否不相同    例如: [  $str1 !=  $str2 ]     如果2个字符串不同,则为真,返回0
 
对于文件的判断:
         -d  filename   :判断文件是否为目录      例如:[  -d   /etc/passwd ]     如果为目录,则为真
         -f  filename   :判断文件是否为文件      例如:[  -f   /etc/passwd ]
         -r  filename   :判断文件是否为可读      例如:[  -r   /etc/passwd ]
         -x  filename   :判断文件是否为可执行    例如:[  -x   /etc/passwd ]
         -w  filename   :判断文件是否为可写      例如:[  -w   /etc/passwd ]
         -L  filename   :判断文件是否为链接文件  例如:[  -L   /etc/passwd ]
         -e  filename   :判断文件是否为存在      例如:[  -e   /etc/passwd ]
  
逻辑运算符:
         -a  : 逻辑与   相当有and ,     例如:[  $a -gt 90   -a   $a -lt 100 ] 
         -o  :  逻辑或   相当有or         例如:[  $a -gt 90   -o    $a -lt 100 ]
          ! : 逻辑非                    例如:[  ! " $ a -gt 90" ]

上一篇:shell 脚本学习之四 ------shell是如何执行的及几个特别命令
下一篇:正则表达式学习之-----基础篇

文章评论