• Linux与Shell学习--shell系列5--Shell运算符1(算数运算符和关系运算符)


    目录

    1、算数运算符

     2、关系运算符


           在shell中,和其他编程语言一样也有多种运算符,常用的运算符有:算数运算符、关系运算符、逻辑运算符、字符串运算符、文件测试运算符等。

    1、算数运算符

            算数运算符就是我们最常见的,常用的主要有+(加)、-(减)、*(乘)、/(除)、%(取余)、=(赋值)、==(等于)、!=(不等于)。

            shell是不支持简单的数学运算的,这时候我们就可以使用expr命令来实现shell中的简单运算,expr 是一款表达式计算工具,使用它能完成表达式的求值操作。expr的命令使用方法是:比如1+2要写成`expr 1 + 2`,expr和计算公式需要写在  `  ` 中(方括号,esc下面的那个按钮)并且数值和运算符之间要有空格`expr 1+2`是不对的。

    1. echo "1+2" #先试下正常的运算方式能否得到结果
    2. #打印结果 1+2
    3. echo `expr 1+2` #数值和运算符中间没有空格时
    4. #打印结果 1+2
    5. echo `expr 1 + 2` #加法
    6. #打印结果 3
    7. echo `expr 2 - 1` #减法
    8. #打印结果 1
    9. echo `expr 2 \* 3` #乘法必须要使用反斜杠才能实现
    10. #打印结果 6
    11. echo `expr 2 * 3` #乘法没有反斜杠时
    12. #打印结果 expr: 语法错误
    13. echo `expr 6 / 2` #除法
    14. #打印结果 3
    15. echo `expr 6 % 4` #取余
    16. #打印结果 2
    17. cat dengyu.sh #查看dengyu.sh这个脚本
    18. #! /bin/bash
    19. if [ 10 == 10 ]
    20. then
    21. echo "等于判断"
    22. fi
    23. if [ 10 != 20 ]
    24. then
    25. echo "不等于判断"
    26. fi
    27. ./dengyu.sh #运行该脚本
    28. 等于判断
    29. 不等于判断

     2、关系运算符

            关系运算符的应用范围只支持数字,不支持字符串,常见的关系运算符:-eq(equal;检测两个数是否相等,相等返回true)、-ne(not equal;检测两个数是否相等,不相等返回true)、-gt(greater than;检测左边的数是否大于右边的,如果是,则返回 true)、-lt(less than;检测左边的数是否小于右边的,如果是,则返回 true。)、-ge(greater than or equal;检测左边的数是否大于等于右边的,如果是,则返回 true。)、-le(less than or equal;检测左边的数是否小于等于右边的,如果是,则返回 true。)

    shell代码:

    1. #! /bin/bash
    2. a=10 #定义变量a=10
    3. b=20 #定义变量b=20
    4. #-eq(equal;检测两个数是否相等,相等返回true)
    5. if [ $a -eq $b ] #判断如果a和b是否相等
    6. then
    7. echo "$a -eq $b : a 等于 b" #如果a和b相等则输出 a 等于 b
    8. else
    9. echo "$a -eq $b: a 不等于 b" #如果a和b不相等则输出 a 不等于 b
    10. fi
    11. #因为a不等于b,所以走到else分支,打印结果 :10 -eq 20: a 不等于 b
    12. -ne(not equal;检测两个数是否相等,不相等返回true
    13. if [ $a -ne $b ] #判断如果a和b是否不相等
    14. then
    15. echo "$a -ne $b: a 不等于 b" #如果不相等则打印a 不等于 b
    16. else
    17. echo "$a -ne $b : a 等于 b" #如果相等则打印a 等于 b
    18. fi
    19. #因为a不等于b,所以走到then下面,打印结果:10 -ne 20: a 不等于 b
    20. #-gt(greater than;检测左边的数是否大于右边的,如果是,则返回 true)
    21. if [ $a -gt $b ] #判断a是否大于b
    22. then
    23. echo "$a -gt $b: a 大于 b" #如果a大于b则打印a 大于 b
    24. else
    25. echo "$a -gt $b: a 不大于 b" #如果a不大于b则打印a 不大于 b
    26. fi
    27. #因为a不大于b,所以走到else分支下,打印结果:10 -gt 20: a 不大于 b
    28. -lt(less than;检测左边的数是否小于右边的,如果是,则返回 true。)
    29. if [ $a -lt $b ] #判断a是否小于b
    30. then
    31. echo "$a -lt $b: a 小于 b" #如果a小于b则打印a 小于 b
    32. else
    33. echo "$a -lt $b: a 不小于 b" #如果a不小于b则打印 a 不小于 b
    34. fi
    35. #因为a小于b,所以走到then分支下,打印结果:10 -lt 20: a 小于 b
    36. -ge(greater than or equal;检测左边的数是否大于等于右边的,如果是,则返回 true。)
    37. if [ $a -ge $b ] #判断a是否大于或等于b
    38. then
    39. echo "$a -ge $b: a 大于或等于 b" #如果a大于或等于b 则打印a 大于或等于 b
    40. else
    41. echo "$a -ge $b: a 小于 b" #如果a小于b 则打印a 小于 b
    42. fi
    43. #因为a小于b,所以走到else分支下,打印结果:10 -ge 20: a 小于 b
    44. -le(less than or equal;检测左边的数是否小于等于右边的,如果是,则返回 true。)
    45. if [ $a -le $b ] #判断a是否小于或者等于b
    46. then
    47. echo "$a -le $b: a 小于或等于 b" #如果a小于或等于b则打印a 小于或者等于 b
    48. else
    49. echo "$a -le $b: a 大于 b" #如果a大于b 则打印 a 大于 b
    50. fi
    51. #因为a小于b,所以走到then分支下,打印结果:10 -le 20: a 小于或等于 b

     shell截图:

    运行结果截图:


      下图为公众号二维码,内容会同步发出,大家可以关注一起学习

                                                              

  • 相关阅读:
    拙见--springMVC的controller接受的请求参数
    短时傅立叶变换分析
    `算法题解` `UOJ` #150. 【NOIP2015】运输计划
    Hold the door! mosquitto——使用ESP8266以及网络调试助手测试通信
    关于Go你不得不知道的小技巧
    一文带你了解如何编写自动化测试用例
    摩尔投票法(Java)
    如何有效的进行服务器稳定性测试?
    Servlet学习笔记
    如何判断对象是否是垃圾
  • 原文地址:https://blog.csdn.net/weixin_42893232/article/details/125560083