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

bash编程之:算术运算

2015-09-18 14:08 603 查看
日期: 2015年09月13日

算术运算
Shell默认不支持浮点数,所以计算结果中的浮点数会被圆整为整数,如:1.03>1;4.99>4

算术运算的方式:(1) $[$A+$B]
(2) VARIABLE=$((expression))(3) let VARIABLE=$A+$B(4) expr $A + $B(5) bc

运算符:
++ -- 增加或减少,(符号在变量前,先输出运算后的结果,符号在变量后,则先输出变量原来的值)+ - ! ~ 一元的正号与负号、逻辑与位的取反* / % 乘法、除法、取余** 次方+ - 加法、减法< <= > >= 比较符号== !== 等于、不等于 (与=不同,=是赋值,==是判断)<< >> 向左位移、向右位移& 位的and^ 位的异或| 位的或&& 逻辑的and|| 逻辑的or?: 条件表达式=、 +=、 -=、 *=、 /=、 %=、 &=、 ^=、 <<=、 >>=、 |= d赋值运算符 a+=1 相当于 a=a+1

示例:
演示各种算术运算的方法



增强型赋值+=sum=$[$sum+$i]let sum+=$i
-=, *=, /=, %=
let count=$[$count+1] --> let count+=1 --> let count++let count$[$count-1] --> let count-=1 --> let count--

示例:
显示/etc/目录下每个普通文件列表,而后统计一共有多少个文件



脚本执行结果



bc的用法:

bc的独有特点是支持小数运算:# echo 1.1+1.7 | bc2.8 # echo 5.8-1.6 | bc4.2 # echo 2.5*3.0 | bc7.5# echo 2.5/.25 | bc10 bc还支持不同进制数据的转换: 十进制7转换为二进制:# echo "obase=2;7" | bc111 十进制15转换为16进制:# echo "obase=16;15" | bcF 示例:通过命令输出1+2+3..+10的表达式,并计算结果,输出内容如:1+2+3+4+5+6+7+8+9+10=xx # echo `seq -s '+' 10`=`seq -s"+" 10 | bc`1+2+3+4+5+6+7+8+9+10=55 # echo "`seq -s '+' 10`="$((`seq-s "+" 10`))1+2+3+4+5+6+7+8+9+10=55 # echo `seq -s '+' 10`=`seq -s " +" 10 | xargs expr`1+2+3+4+5+6+7+8+9+10=55
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: