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

shell中的算术运算

2017-08-24 22:36 585 查看
linux: bash shell中的算术运算

1. let

let可以执行基本的操作,变量前不用加$。仅支持整数

qingsong@db2a:/tmp$ nb1=4

qingsong@db2a:/tmp$ nb2=5

qingsong@db2a:/tmp$ let result=nb1+nb2 <--加号两侧无空格

qingsong@db2a:/tmp$ let result++

qingsong@db2a:/tmp$ let result+=5

qingsong@db2a:/tmp$ let result--

2. []操作符

使用 [] 操作符,好处是可以直接输出表达式的值,不必先赋值给变量。仅对整数有效

qingsong@db2a:/tmp$ result=$[ nb1+nb2 ]

qingsong@db2a:/tmp$ result=$[ nb1 + 10 ]

qingsong@db2a:/tmp$ echo $[ nb1 + 11 ]

3. (())

也可以使用(()),但使用(())时,变量名之前需要加上$。仅对整数有效

qingsong@db2a:/tmp$ echo $(($nb1+$nb2))

qingsong@db2a:/tmp$ echo $(($nb1+10))

4. expr

仅对整数有效

qingsong@db2a:/tmp$ echo $(expr 3 + 4) <--加号两侧有空格

qingsong@db2a:/tmp$ echo $(expr $nb1 + 10)

5. bc

bc是个计算器,支持浮点运算

qingsong@db2a:/tmp$ nb3=54

qingsong@db2a:/tmp$ result=`echo "$nb3 * 1.5" | bc`

qingsong@db2a:/tmp$ echo $result

81.0

设定小数精度,下面设定精度为5

qingsong@db2a:/tmp$ echo "scale=5;355/113" | bc

3.14159

进制转换,obase/ibase分别表示oput/input base

qingsong@db2a:/tmp$ no=100

qingsong@db2a:/tmp$ echo "obase=2;$no" | bc

1100100

qingsong@db2a:/tmp$ echo "obase=16;$no" | bc

64

qingsong@db2a:/tmp$ no=1100100

qingsong@db2a:/tmp$ echo "obase=10;ibase=2;$no" | bc

100

开方与平方

qingsong@db2a:/tmp$ echo "sqrt(64)" | bc

8

qingsong@db2a:/tmp$ echo "10^2" | bc

100

qingsong@db2a:/tmp$ echo "10^3" | bc

1000
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux shell 算术运算