您的位置:首页 > 运维架构 > Shell

Shell脚本基础之运算符——数值运算、运算符

2019-07-09 10:05 756 查看

Shell脚本的运算符:

  • 数值运算与运算符
  • 变量测试与内容替换

注意:在Linux的Shell当中,我们的变量类型都默认为字符串型。

实例说明:

[root@root 桌面]# cd ~
[root@root ~]# aa=11
[root@root ~]# bb=22
[root@root ~]# cc=$aa+$bb
[root@root ~]# echo $cc
11+22
#在Linux的Shell当中,我们的变量类型都默认为字符串型。

一、数值运算

1、declare声明变量类型

[root@localhost ~]# declare [+/-][选项] 变量名
.
选项:

  • - : 给变量设定类型属性
  • + : 取消变量的类型属性
  • -i : 将变量声明为整数型(integer)
  • -x : 将变量声明为环境变量
  • -p : 显示指定变量的被声明的类型
  • 通过declare命令将变量申明为环境变量,示例说明:
[root@root ~]# aa=11
[root@root ~]# declare -p aa
declare -- aa="11"
[root@root ~]# export aa
[root@root ~]# declare -p aa
#通过[declare -p]命令查询一下aa变量的类型
declare -x aa="11"
#可以发现aa变量具备了declare -x的属性(即环境变量属性)

上例总结:我们前面讲的将变量声明为环境变量,其实就是给这个变量赋予了declare -x的属性。当然即可以通过export命令,也可以通过declare命令将变量声明为环境变量,效果是一样的。我们只是习惯通过export命令申明环境变量。

2、数值运算

2.1> 方法一:

[root@localhost ~]# aa=11
[root@localhost ~]# bb=22
#给变量aa和bb赋值
[root@localhost ~]# declare -i cc=$aa+$bb
#用[declare]命令通过[ -i ]参数,将需要运算的变量cc声明为数值型

示例说明:

[root@root ~]# aa=11
[root@root ~]# bb=22
[root@root ~]# declare -i cc=$aa+$bb
[root@root ~]# echo $cc
33
2.2> 方法2:expr或let数值运算工具

[root@root ~]# aa=11
[root@root ~]# bb=22
#给变量aa和变量bb赋值
[root@root ~]# dd=$(expr $aa + $bb)
#dd的值是aa和bb的和。注意 “ + ”号左右两侧必须有空格;
#这个$()是把[expr $aa + $bb]的结果赋值给dd,而不是将这个字符串,所以命令要用$()括起来

示例说明:

[root@root ~]# dd=$(expr $aa + $bb)
[root@root ~]# echo $dd
33
2.3> 方法3:“$((运算符))”或“$[运算符]”

这种方法是最用的。

[root@localhost ~]# aa=11
[root@localhost ~]# bb=22
[root@localhost ~]# ff=$(( $aa+$bb ))
[root@localhost ~]# gg=$[ $aa+$bb]

3、运算符

关于上表的说明:

  • 优先级:数值越高优先级越高,如13的优先级是最高的,13~1的优先级一次减小;

三、变量测试与内容替换

以下表格最主要的作用是:通过显示变量x的值,来判断变量y为有没有值,是为空,还是有值。

以上表格的前6行是给程序用的,后两行是给用户用的

作用是:

  • 通过判断x的值来判断y的值是否存在。通过判断x的值来判断y的值是否存在。以第一个为例:如果没有设定y的值,这时x的值就是指定的新值(同理:如果x的值等于新值,证明y这个变量不存在)。如果y变量不存在,x的值为新值;如果y是存在的但有是个空值,这时x的值也为空;如果变量y有值,那么x的值就等于变量y的值。
  • 通过[ echo $y ]输出这个值,是给用户看的。我们在写脚本的时候,程序要自动执行,当程序自动执行的时候,有可能要判断上面这个而变了是否存在,这个时候我们就不可能通过人眼的方式去判断,我们得让计算机能够判断,这个时候这个判断是就比较有用了。
  • 例子1:测试[ x=${y-新值} ],示例如下:
#当y值不存在时,程序运行如下:

[root@localhost ~]# unset y
#删除变量y。不管原先系统有没有,我们都将y全部删掉
[root@localhost ~]# x=${y-new}
#进行测试
[root@localhost ~]# echo $x
new
#因为变量y不存在,所以x=new
#当y值存在但是为空值,程序运行如下:

[root@localhost ~]# y=""
#给变量y赋值为空。通过y="",强制给y设置成空
[root@localhost ~]# x=${y-new}
#进行测试
[root@localhost ~]# echo $x
#当x的值存在时,程序运行如下:

[root@root ~]# y=old
[root@root ~]# x=${y-new}
[root@root ~]# echo $x
old
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: