bash的数值运算

来源:互联网 发布:行知职高在哪 编辑:程序博客网 时间:2024/05/16 19:51

在shell中,变量的默认类型是字符串类型,而字符串类型是不能进行数值运算的,所以shell提供了两种方式来实现数值运算。
1. 用declare命令显式地声明变量的类型。
2. 用expr/let数值运算工具或着特殊书写格式来完成shell中的数值运算。
一、declare命令介绍
目的:显式地声明变量的类型
格式:declare +/-选项 变量名。
其中-表示给变量设定类型属性,+表示给变量取消类型属性。
选项有:
a 表示数组型
i 表示整型,
p 表示查看变量类型的属性
r 表示设置变量为只读
举例:
1. 定义变量val为数组型: declare -a val,我们可以通过val[0]=1来讲数组变量val的第一个元素赋值为1。我们也可以通过val=(0 1 2 3 4 5 6 7)为val数组一次性赋值8个元素。我们用${val[下标]}来查看数组中的元素,如果省略下标,将查看到的是数组第一个元素的值,若下标用*代替,则查看数组变量中的所有元素。
2. 定义变量val为整型: declare -i val,只有将val定义成了整型,存储的值才是数值运算后的结果。例如 declare -i val=1+2,这里val中的值将是3,如果不写 declare -i,而直接写val=1+2,val中的值将是”1+2”。
3. 定义变量val为环境变量: declare -x val,它的效果等同于 export val。
4. 查看val的类型属性: declare -p val, 它会告诉你val的类型为何。
5. 设置变量val为只读:declare -r val。这个要慎用,设置val为只读后,不能对其进行任何操作,包括取消类型属性,所以val将常驻当前shell,直到其退出,变量自动释放。
二、利用特殊工具或特殊书写格式来进行数值运算
1. 数值运算工具: expr/let
expr用法格式:变量名= expr 变量1 运算符 变量2,等号左边不能有空格, expr两边必须有空格 运算符两边必须有空格。比如:val= expr 1 + 2,val中的值将是3。
let用法格式:let 变量名=变量1运算符变量2,等号两边,运算符两边不能有空格。比如:let val=1+2, val中的值将是3。
2. 特殊格式
格式如下:val=\$((1+2)),将运算的变量用双括号括起来,可以达到算数运算的效果,请记住需要在双括号外加上\$符号用于取运算后的值,并将值赋予变量val。
总结:因为shell默认的类型是字符串型,而字符串类型是不能进行数学意义上的数值运算,所以我们可以通过1. 利用declare命令将变量类型显式定义为整型进而对其进行数值运算。2. 可以通过expr/let工具和双括号来实现数值运算。
若有不对之处,敬请指正。

0 0
原创粉丝点击