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
算术运算
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
相关文章推荐
- shell中if做比较
- Powershell 查看软件是否成功安装
- Xshell配置ssh免密码登录
- adb shell下查看sqlite数据库
- 手动执行shell没问题,crontab执行shell却不行原因
- Calling Executable Files in PowerShell
- bash shell基础
- adb shell 命令详解,android
- shell学习笔记
- 【转】shell 教程——07 Shell特殊变量:Shell $0, $#, $*, $@, $?, $$和命令行参数
- 【转】shell 教程——06 Shell变量:Shell变量的定义、删除变量、只读变量、变量类型
- 【转】shell 教程——05 第一个Shell脚本
- 脚本乐园 shell 中对小数进行比较的方法总结
- 【转】shell 教程——04 什么时候使用Shell
- 【转】shell 教程——03 Shell脚本语言与编译型语言的差异
- 【转】shell 教程——02 几种常见的Shell
- 【转】shell 教程——01 Shell简介:什么是Shell,Shell命令的两种执行方式
- shell和mysql使用总结
- 采用shell脚本统计代码的行数
- shell基础之五:数组初步