算数运算符
shell只支撑整数运算
常见的算数运算大多联合shell的内建命令let来应用。
+ - * / % **(幂运算)
+= -= *= /= %=
位运算
>> << & | ^ ~
自增自减
++ --
例:
let "b=3"
let "a=(++b)"
其他算数运算
简略的算数运算进程中,如果有一个值是字符的,那末解析为0
如R+2=2
1、应用$[]作运算
1、到目前看到的$这样的情势有:${}(数组) $[](算数运算) $()(命令调换)
2、和$(())相似,可用于简略的算数运算
例:
echo $[1+1]
echo $[2-1]
echo $[2*2]
echo $[5/2];//舍弃小数
echo $[5%2]
echo $[3**2]
2、应用expr作运算
1、用于整数运算
2、请求操作数和操作数之间用空格隔开,否则只会打印字符串,所以特别的操作符须要转义字符转义(比如*)
expr 1 + 1
expr 2 - 1
expr 2 \* 2
expr 2 / 1
如果编程的时候习惯了运算符两边有空格,这类运算方法还是不错的,固然要注意“*”须要转义
3、应用内建命令declare
当用declare定义成整形后,将后面的字符串解析成了算数运算
例:
delcare -i num
num=1+3
echo $num
注意:
shell中的算数运算请求运算符和操作数之间不能有空格,而是紧密连接的,特别符号在这里不用转义,如果算木表达式中含有其他变量也不须要$援用。
4、算数扩大
算数扩大是shell供给的整数变量的运算机制,是shell的内建命令之一。
根本语法:$((算数表达式))
其中,算数表达式由变量和运算符组成,常见的用法是显示输出和变量赋值。若表达式中的变量没有定义,则在运算中假定为0(不会真给该变量赋值为0)
例:
i=2
echo $((i*3+3)) #i前没有$符号
echo $((2*(i+2))) #用括号转变运算优先级
5、应用bc作运算
上述几种运算都是基于整数的。
bc:一款高精度盘算语言
直接输入bc,回车进入bc界面
1、默许情形下bc其实不显示小数,通过scale=number设置显示的小数位数。
2、bc支撑算数运算,逻辑运算,比拟运算
3、支撑批处置和以管道方法处置表达式盘算
例:
1、#cat cal.bc
a=2;b=5;a+b;
#cat cal.bc|bc
2、echo "2+3"|bc
算数运算符
shell只支撑整数运算
常见的算数运算大多联合shel