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工具和双括号来实现数值运算。
若有不对之处,敬请指正。
- bash的数值运算
- bash中的数值运算
- linux bash数值运算
- shell基础bash数值运算符-60
- Shell基础-Bash变量-数值运算与运算符
- shell基础-bash变量-数值运算与运算符
- Bash的运算符
- bash shell 获取数值的百位、个位
- 字符串中数值 的运算
- c语言的数值运算
- Shell的变量数值运算
- shell的数值运算方法
- bash变量-数值运算与运算符/变量测试与内容替换/环境变量配置文件
- 数值运算
- bash shell 数值比较
- 使用位运算的数值转换程序
- 实现double数值的精度加减乘除运算
- 通过位运算判断数值的奇偶性
- Linux下的tar压缩解压缩命令详解
- NOIP2013提高组 货车运输
- object pascal中的覆盖(override)、重定义(redefine)和重载(overload)
- 在公司实习中的学习一
- Java网络爬虫crawler4j学习笔记<10> HostDirectives类
- bash的数值运算
- Java爬虫网页抓取图片
- iptables+tc实现isp级别每ip限速并限制会话数
- 用 shell 脚本快速打包 iOS ipa 文件
- Android开发-RecyclerView-AndroidStudio(五)属性动画(2)MoveDuration
- JDK安装成功了 但eclipse起不来
- 21. Merge Two Sorted Lists (Easy)
- Xcode 8.0 调试运行,This ** is running iOS 10.1.1 (14B100), which may not be supported
- 你应该知道的active code,关于cmd黑窗口那些事儿