Linux基础------Shell数值计算的几种方法
来源:互联网 发布:php数据统计模板 编辑:程序博客网 时间:2024/05/20 16:39
在Linux下总会遇到数值计算问题,由于Linux下变量都属于弱变量,没有变量类型的概念(貌似脚本语言都是这样)。
例如定义一个变量:x=1
此时的变量x默认是一个字符串,即使看着像一个数字,所以当尝试用如下的方法去进行计算的时候,得到的结果却不是想要的
echo $x+=1 ------------> 输出:2+=1,并不是想要的结果2
Linux下有多种方法进行计算,一下摘录几例:
1.使用$[]
个人最常用的就是$[]方法进行计算,简单方便,适合不太复杂的计算。
x=1echo $[$x+=1]
输出:2
2.使用expr
expr命令为Linux中的命令,一般用于整数值计算,但也可用于字符串操作。
使用格式:
expr var1 operator var2
例如:
x=1expr $x + 4
输出:5
注意:表达式之间的空格,注意只能进行整数运算,如果操作数不为整数,命令将会报错。
此命令所有计算的结果会以整数形式返回,例如上述的表达式变为:expr $x / 4 ,其结果为1,结果已经自动进行了取整操作。
此命令所有计算的结果会以整数形式返回,例如上述的表达式变为:expr $x / 4 ,其结果为1,结果已经自动进行了取整操作。
3.使用(())
使用方法:((表达式1,表达式2,表达式3))
相比上面的两种方法,(())这种方法略显强大,它的强大之处在于:
1) 支持a++,a--操作(是不是找到C语言的感觉)
2) 支持多个表达式运算,各个表达式之间用“,”分开
3) 双括号可以进行逻辑运算,四则运算
4) 双括号结构 扩展了for,while,if条件测试运算
5) 在双括号结构中,所有变量可以不加入:“$”符号前缀
x=1((y = x + 1,z = y + 1))echo $z输出:3
如果双括号带:$,将获得表达式值,赋值给左边变量
a=10b=10total=$((a*b))
echo $total
输出:100
扩展流程控制语句(逻辑关系式)(摘自网络)
#!/bin/sh num=100; total=0; for((i=0;i<=num;i++)); do ((total+=i)); done echo $total; total=0; i=0; while((i<=num)); do ((total+=i,i++)); done echo $total; if((total>=5050));then echo "ok"; fi
4.使用 let 命令
var=1let "var+=1" 或 let var+=1 这种写法运算符间不能有空格 echo $varoutput:2
使用方法:
let 表达式
注意:let必须是完整的算术表达式,即有等号两边
0 0
- Linux基础------Shell数值计算的几种方法
- Linux 查看shell的几种方法
- shell的数值计算,小数计算
- 交换两个数值的几种方法
- 关于数值交换的几种方法
- Linux Shell实现交互的几种方法
- linux shell 执行多个命令的几种方法
- [例子]Linux下shell批处理文件的几种方法
- 查看linux中shell的几种方法汇总
- 查看linux中shell的几种方法汇总
- Linux下调试shell的几种方法
- 查看linux中shell的几种方法汇总
- Linux执行SHELL脚本的几种方法
- linux下反弹shell的几种方法
- Linux shell文件读写的几种方法
- linux shell 判断空字符串的几种方法!
- shell的数值运算方法
- shell数值累加计算的代码
- Webbench安装
- 图片+文字水印
- HDOJ 1556 Color the ball
- UIButton 中,文字和图片共存
- php Socket 基础
- Linux基础------Shell数值计算的几种方法
- 做一个成功的研究生
- 教你如何识别黑心建站商家
- [置顶] 为自己加油!!!--ThoughtWorks面试后感
- Editor------------------PreferenceItem
- Spring的Annotation配置
- POJ 2932 Coneology (扫描线判断最外面的圆&set维护最近的圆)
- 【Leetcode】Climbing Stairs
- 手机产品神秘顾客