心安

Shell编程系列(三)-- 运算符

字数统计: 589阅读时长: 2 min
2018/11/20 Share

前言

在上一篇文章Shell编程系列(二)– Bash 变量中,
我们学习了Shell编程中的变量相关的知识。通过上一篇文章的讲解,我们不难发现,Shell编程中变量的缺点就是:(1)弱类型;(2)默认字符串类型。
这就导致了我们是没有办法直接对Shell变量进行加减乘除数值运算的,所以本文就讲解一下Shell中的运算符和运算方式。

declare命令

declare命令是用于声明变量类型的命令。前文我们提到,Shell编程中所有的变量默认字符串类型,所以无法进行数值运算,想要数值运算,第一步就是需要使用declare命令来进行变量类型的声明。
语法:declare [+/-] [选项] 变量名

选项 作用
- 给变量设定类型属性
+ 取消变量类型属性
-a 将变量声明为数组类型
-i 将变量声明为整数型
-x 将变量声明为环境变量
-r 将变量声明为只读变量
-p 显示指定变量的类型

数值运算方法

  1. 方法一:
    1
    2
    3
    4
    5
    a=1
    b=2
    declare -i c=$a+$b
    echo $c
    3

这里声明变量a和变量b的时候并未指定数据类型,但是指定了变量c的数据类型为整形,那么Shell会自动认为ab也是整形,然后进行整数运算。

  1. 方法二
    1
    2
    3
    4
    5
    a=1
    b=2
    c=$(expr $a + $b)
    echo $c
    3

注意,$a + $b加号两侧必须加空格,否则不会进行数值运算。

  1. 方法三
    1
    2
    3
    4
    5
    a=1
    b=2
    c=$(($a+$b))
    echo $c
    3

第三、四种方法,加号两侧加不加空格都可以,所以比较推荐这两种方式

  1. 方法四
    1
    2
    3
    4
    5
    a=1
    b=2
    c=$[$a+$b]
    echo $c
    3

运算符:

优先级 运算符 说明
13 -, + 负、正
12 !, ~ 逻辑非,按位取反或补码
11 *, /, % 乘、除、取模
10 +, - 加,减
9 <<, >> 按位左移,按位右移
8 <=, >=, <, > 小于等于,大于等于,小于,大于
7 ==, != 等于,不等于
6 &
5 ^ 异或
4 ¦
3 && 逻辑与
2 ¦¦ 逻辑或
1 =, +=, *=, /=, %=, &=,
^=, ¦=, <<=, >>=
赋值,运算且赋值

关于Shell运算符的内容大概就是这些,感谢阅读本文。如果您在阅读的过程中有任何的意见或者建议,欢迎留言。

原文作者:XinAnzzZ

原文链接:https://www.yuhangma.com/2018/linux/2018-11-20-shell-operator/

发表日期:November 20th 2018, 12:00:00 am

更新日期:September 26th 2019, 10:46:42 am

版权声明:(转载本站文章请注明作者和出处 心 安 – XinAnzzZ ,请勿用于任何商业用途)

CATALOG
  1. 1. 前言
  2. 2. declare命令
  3. 3. 数值运算方法