美文网首页
shell运算符-1

shell运算符-1

作者: 小小机器人 | 来源:发表于2017-05-05 10:54 被阅读38次

    1. 算术运算符

    #!/bin/sh
    a=10
    b=20
    val=`expr $a + $b`
    echo "a + b : $val"
    val=`expr $a - $b`
    echo "a - b : $val"
    val=`expr $a \* $b` #乘法需要加一个\
    echo "a * b : $val"
    val=`expr $b / $a`
    echo "b / a : $val"
    val=`expr $b % $a`
    echo "b % a : $val"
    if [ $a == $b ]
    then
       echo "a is equal to b"
    fi
    if [ $a != $b ]
    then
       echo "a is not equal to b"
    fi
    
    [root@localhost shell_study]# ./test.sh 
    a + b : 30
    a - b : -10
    a * b : 200
    b / a : 2
    b % a : 0
    a is not equal to b
    

    2. 关系运算符

    #!/bin/sh
    a=10
    b=20
    if [ $a -eq $b ]
    then
       echo "$a -eq $b : a is equal to b"
    else
       echo "$a -eq $b: a is not equal to b"
    fi
    

    关系运算符列表

    运算符 说明 举例
    -eq 检测两个数是否相等,相等返回 true。 [ $a -eq $b ] 返回 true。
    -ne 检测两个数是否相等,不相等返回 true。 [ $a -ne $b ] 返回 true。
    -gt 检测左边的数是否大于右边的,如果是,则返回 true。 [ $a -gt $b ] 返回 false。
    -lt 检测左边的数是否小于右边的,如果是,则返回 true。 [ $a -lt $b ] 返回 true。
    -ge 检测左边的数是否大等于右边的,如果是,则返回 true。 [ $a -ge $b ] 返回 false。
    -le 检测左边的数是否小于等于右边的,如果是,则返回 true。 [ $a -le $b ] 返回 true

    3. 逻辑运算符

    #!/bin/bash
    a=10
    b=20
    if [ $a -lt 100 -a $b -gt 15 ]
    then        
       echo "true"  
    else        
       echo "false" 
    fi 
    
    运算符 说明 举例
    ! 非运算,表达式为 true 则返回 false,否则返回 true。 [ ! false ] 返回 true。
    -o (or) 或运算,有一个表达式为 true 则返回 true。 [ $a -lt 20 -o $b -gt 100 ] 返回 true。
    -a(and) 与运算,两个表达式都为 true 才返回 true。 [ $a -lt 20 -a $b -gt 100 ] 返回 false。

    注意:
    表达方式:if((a<100 && b>15))

    4. 字符串运算符

    #!/bin/bash
    a="aa"
    if [ -z $a ]
    then
       echo "a is empty"
    else
       echo "a is not empty"
    fi
    

    字符串运算符列表

    |运算符| 说明| 举例|
    |-|-|
    |= |检测两个字符串是否相等,相等返回 true。| [ $a = $b ] 返回 false。|
    |!=| 检测两个字符串是否相等,不相等返回 true。| [ $a != $b ] 返回 true。|
    |-z(zero) |检测字符串长度是否为0,为0返回 true。 |[ -z $a ] 返回 false。|
    |-n(not zero) |检测字符串长度是否为0,不为0返回 true。| [ -z $a ] 返回 true。|
    |str |检测字符串是否为空,不为空返回 true。 |[ $a ] 返回 true|

    5. 文件运算符

    #!/bin/bash
    file="/usr/shell_study/test.sh"
    if [ -r $file ]
    then
       echo "file has read access"
    fi
    
    if [ -e $file ]
    then
       echo "file/dir is exist"
    fi
    

    文件测试运算符列表

    |操作符 |说明 |举例|
    |-|-|
    |-b |file |检测文件是否是块设备文件,如果是,则返回 true。| [ -b $file ] 返回 false。|
    |-c |file |检测文件是否是字符设备文件,如果是,则返回 true。 |[ -b $file ] 返回 false。|
    |-d |file |检测文件是否是目录,如果是,则返回 true。 |[ -d $file ] 返回 false。|
    |-f |file |检测文件是否是普通文件(既不是目录,也不是设备文件),如果是,则返回 true。 |[ -f $file ] 返回 true。|
    |-g |file |检测文件是否设置了 SGID 位,如果是,则返回 true。| [ -g $file ] 返回 false。|
    |-k |file |检测文件是否设置了粘着位(Sticky Bit),如果是,则返回 true。| [ -k $file ] 返回 false。|
    |-p |file |检测文件是否是具名管道,如果是,则返回 true。 |[ -p $file ] 返回 false。|
    |-u |file |检测文件是否设置了 SUID 位,如果是,则返回 true。| [ -u $file ] 返回 false。|
    |-r |file |检测文件是否可读,如果是,则返回 true。| [ -r $file ] 返回 true。|
    |-w |file |检测文件是否可写,如果是,则返回 true。 |[ -w $file ] 返回 true。|
    |-x |file |检测文件是否可执行,如果是,则返回 true。 |[ -x $file ] 返回 true。|
    |-s (size) |file |检测文件是否为空(文件大小是否大于0),不为空返回 true。 |[ -s $file ] 返回 true。|
    |-e (exsit)|file |检测文件(包括目录)是否存在,如果是,则返回 true。| [ -e $file ] 返回 true。|

    相关文章

      网友评论

          本文标题:shell运算符-1

          本文链接:https://www.haomeiwen.com/subject/ytmtittx.html