• shell-运算符


    原生shell不支持数学运算,一般通过其他命令得以实现

    shell运算概述

    shell内的运算通常由expr命令实现

    val=`expr 2 + 2`
    echo $val
    

    这里值得注意的有两点,第一,在计算时候,因子之间必须存在空格,第二,这个计算是要让外部去执行的,所以放在反引号之间
    这里会有三种常见写法

    val1=`expr 2 + 2`
    val2=$(expr 2 + 2)
    val3=$[ 2 + 2 ]
    

    算术表达式

    运算符 说明 举例
    + 加法 expr $a + $b
    - 减法 expr $a - $b
    * 乘法 expr $a * $b
    / 除法 expr $b / $a
    % 取余 expr $b % $a
    = 赋值 a=$b 将把变量b的值赋给a
    == 相等,用于比较两个数字,相同则返回true [ $a == $b ]
    != 不相等,用于比较两个数字,不相同则返回true [ $a != $b ]

    注:*需要*转义

    关系运算符

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

    注:关系运算符只支持数字,不支持字符串,除非字符串的值是数字

    布尔运算符

    运算符 说明 举例
    ! 非运算,表达式为 true 则返回 false,否则返回 true [ ! false ]
    -o 或运算,有一个表达式为 true 则返回 true [ $a -lt 20 -o $b -gt 100 ]
    -a 与运算,两个表达式都为 true 才返回 true [ $a -lt 20 -a $b -gt 100 ]

    逻辑运算符

    运算符 说明 举例
    && 逻辑的AND [[ $a -lt 100 && $b -gt 100 ]]
    || 逻辑的OR [[ $a -lt 100 || $b -gt 100 ]]

    字符串运算符

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

    文件测试运算符

    操作符 说明 举例
    -b file 检测文件是否是块设备文件,如果是,则返回 true [ -b $file ]
    -c file 检测文件是否是字符设备文件,如果是,则返回 true [ -c $file ]
    -d file 检测文件是否是目录,如果是,则返回 true [ -d $file ]
    -f file 检测文件是否是普通文件(既不是目录,也不是设备文件),如果是,则返回 true [ -f $file ]
    -g file 检测文件是否设置了 SGID 位,如果是,则返回 true [ -g $file ]
    -k file 检测文件是否设置了粘着位(Sticky Bit),如果是,则返回 true [ -k $file ]
    -p file 检测文件是否是有名管道,如果是,则返回 true [ -p $file ]
    -u file 检测文件是否设置了 SUID 位,如果是,则返回 true [ -u $file ]
    -r file 检测文件是否可读,如果是,则返回 true [ -r $file ]
    -w file 检测文件是否可写,如果是,则返回 true [ -w $file ]
    -x file 检测文件是否可执行,如果是,则返回 true。 [ -x $file ]
    -s file 检测文件是否为空(文件大小是否大于0),不为空返回 true [ -s $file ]
    -e file 检测文件(包括目录)是否存在,如果是,则返回 true [ -e $file ]
  • 相关阅读:
    win10 uwp 弹起键盘不隐藏界面元素
    win10 uwp 存放网络图片到本地
    win10 uwp 存放网络图片到本地
    sublime Text 正则替换
    sublime Text 正则替换
    win10 uwp 绘图 Line 控件使用
    win10 uwp 绘图 Line 控件使用
    AJAX 是什么?
    什么是 PHP SimpleXML?
    PHP XML DOM:DOM 是什么?
  • 原文地址:https://www.cnblogs.com/cj5785/p/10664690.html
Copyright © 2020-2023  润新知