zoukankan      html  css  js  c++  java
  • shell脚本学习2-shell中的几种运算符

    shell和其他编程语言一样也支持运算符操作。主要包含算术运算符关系运算符布尔运算符字符串运算符文件测试运算符

    1. 算术运算符
    • + 加法 '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] 和==一样左右两边必须有空格
    1. 关系运算符
    • -eq 判断是否相等 [$a -eq $b ]
    • -ne 判断是否不相等 [$a -ne $b]
    • -gt 大于 [$a -gt $b]
    • -lt 小于 [$a -lt &b]
    • -ge 大于等于 [$a -ge $b]
    • -le 小于等于 [$a -le $b]
    1. 布尔运算符
    • ! 非 [!false]
    • -o 或 [$a -lt 20 -o $b -gt 100]
    • -a 和 [$a -lt 20 -a $b -gt 100]
    1. 逻辑运算符
    • && 逻辑AND [[ $a -lt 100 && $b -gt 100 ]] 返回 false
    • || 逻辑or [[ $a -lt 100 || $b -gt 100 ]] 返回 true 该运算符具有屏蔽性,如果前一个操作结果为真则不会执行后一个操作。
    1. 字符串运算符
    • = 检测两个字符串是否相等,相等返回 true。 [ $a = $b ]操作符左右两边有空格
    • != 检测两个字符串是否相等,不相等返回 true。[ $a != $b ]
    • -z 检测字符串长度是否为0,为0返回 true。 [ -z $a ]
    • -n 检测字符串长度是否不为 0,不为 0 返回 true [ -n "$a" ]
    • $ 检测字符串是否为空,不为空返回 true。 [ $a ]
    1. 文件测试检测符
    • -b file 检测文件是否是块设备文件,如果是,则返回 true。 [ -b $file ] 返回 false。
    • -c file 检测文件是否是字符设备文件,如果是,则返回 true。 [ -c $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 file 检测文件是否为空(文件大小是否大于0),不为空返回 true。 [ -s $file ] 返回 true。
    • -e file 检测文件(包括目录)是否存在,如果是,则返回 true。 [ -e $file ] 返回 true。
  • 相关阅读:
    Allegro PCB Design GXL (legacy) 使用slide无法将走线推挤到焊盘的原因
    OrCAD Capture CIS 16.6 导出BOM
    Altium Designer (17.0) 打印输出指定的层
    Allegro PCB Design GXL (legacy) 将指定的层导出为DXF
    Allegro PCB Design GXL (legacy) 设置十字大光标
    Allegro PCB Design GXL (legacy) 手动更改元器件引脚的网络
    magento产品导入时需要注意的事项
    magento url rewrite
    验证台湾同胞身份证信息
    IE8对css文件的限制
  • 原文地址:https://www.cnblogs.com/Rostov/p/13489126.html
Copyright © 2011-2022 走看看