zoukankan      html  css  js  c++  java
  • Shell学习(四)Shell运算符

    一、基础运算

    • 原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awkexpr,expr 最常用。
    • expr 是一款表达式计算工具,使用它能完成表达式的求值操作。
    #计算两个数之间的和
    val=`expr 2 + 2`
    echo "两数之和为 : $val"  #输出:两数之和为 : 4

    #计算两个数之间的乘积
    val=`expr 2 * 2`
    echo "两数之乘积为 : $val"  #输出:两数之乘积为 : 4

    注意的地方:

    • 表达式和运算符之间要有空格,例如 2+2 是不对的,必须写成 2 + 2,这与我们熟悉的大多数编程语言不一样。
    • 完整的表达式要被 ` ` 包含,注意这个字符不是常用的单引号,在 Esc 键下边。
    • 乘号(*)前边必须加反斜杠()才能实现乘法运算;

    条件表达式

      条件表达式需要在首尾加上“ [ ] ”,并且要用空格间隔开。

    #定义变量
    a=10
    b=20
    
    #判断 a == b
    if [ $a == $b ]
    then
       echo "a 等于 b"
    fi
    
    #判断 a != b
    if [ $a != $b ]
    then
       echo "a 不等于 b"
    fi

    二、关系运算

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

    a=10
    b=20
    
    #判断两数是否相等 if [ $a -eq $b ] then echo "$a -eq $b : a 等于 b" else echo "$a -eq $b: a 不等于 b" fi

    PS: 用test命令也可以实现相应的比较,详见:戳这里~

    布尔运算

    #判断两数大小
    if [ $a -lt 100 -a $b -gt 15 ]
    then
       echo "$a 小于 100 且 $b 大于 15 : 返回 true"
    else
       echo "$a 小于 100 且 $b 大于 15 : 返回 false"
    fi

    四、逻辑运算

    a=10
    b=20
    
    #判断条件是否为真。外层的括号是判断条件的,内层的括号是获取两条件的与运算结果 if [[ $a -lt 100 && $b -gt 100 ]] then echo "返回 true" else echo "返回 false" fi

    五、字符串运算

    a="abc"
    b="efg"
    
    #判断字符串长度是否为0
    if [ -z $a ]
    then
       echo "-z $a : 字符串长度为 0"
    else
       echo "-z $a : 字符串长度不为 0"
    fi

    六、文件测试运算

    #定义一个变量,值为文件路径
    file="/home/zh/zh/test/testShell.sh"
    
    #文件可读性判断
    if [ -r $file ]
    then
       echo "文件可读"
    else
       echo "文件不可读"
    fi
    
    #文件可写性判断
    if [ -w $file ]
    then
       echo "文件可写"
    else
       echo "文件不可写"
    fi
    
    #文件可执行性判断
    if [ -x $file ]
    then
       echo "文件可执行"
    else
       echo "文件不可执行"
    fi
  • 相关阅读:
    【百度地图API】如何获取行政区域的边界?(转载)
    Javascript原型,原型链?有什么特点?
    什么是闭包?为什么使用闭包?闭包的缺点?
    为什么利用多个域名来存储网站资源会更有效?
    javascript如何处理很多数据,类似分页切换
    关于模板引擎handlebars.js基本用法
    关于CSS3的filter(滤镜) 属性
    App里面如何正确显示用户头像
    jQuery性能优化的一些参考建议
    文字超出显示省略号
  • 原文地址:https://www.cnblogs.com/riches/p/11936535.html
Copyright © 2011-2022 走看看