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

Shell算数运算

2018-01-23 23:24 225 查看
使用bc

1)例1

#!/bin/bash

var1=10.46
var2=43.67
var3=33.2
var4=71

var5=$(bc << EOF
scale = 4
a1 = ( $var1 * $var2)
b1 = ($var3 * $var4)
a1 + b1
EOF
)

echo The final answer for this mess is $var5


2)例2

$ cat test11
#!/bin/bash
var1=20
var2=3.14159
var3=$(echo "scale=4; $var1 * $var1" | bc)
var4=$(echo "scale=4; $var3 * $var2" | bc)
echo The final result is $var4


  

使用expr

expr命令操作符

操作符描述
ARG1 | ARG2如果
ARG1
既不是null也不是零值,返回
ARG1
;否则返回
ARG2
ARG1 & ARG2如果没有参数是null或零值,返回
ARG1
;否则返回
0
ARG1 < ARG2如果
ARG1
小于
ARG2
,返回
1
;否则返回
0
ARG1 <= ARG2如果
ARG1
小于或等于
ARG2
,返回
1
;否则返回
0
ARG1 = ARG2如果
ARG1
等于
ARG2
,返回
1
;否则返回
0
ARG1 != ARG2如果
ARG1
不等于
ARG2
,返回
1
;否则返回
0
ARG1 >= ARG2如果
ARG1
大于或等于
ARG2
,返回
1
;否则返回
0
ARG1 > ARG2如果
ARG1
大于
ARG2
,返回
1
;否则返回
0
ARG1 + ARG2返回
ARG1
ARG2
的算术运算和
ARG1 - ARG2返回
ARG1
ARG2
的算术运算差
ARG1 * ARG2返回
ARG1
ARG2
的算术乘积
ARG1 / ARG2返回
ARG1
ARG2
除的算术商
ARG1 % ARG2返回
ARG1
ARG2
除的算术余数
STRING : REGEXP如果
REGEXP
匹配到了
STRING
中的某个模式,返回该模式匹配
match STRING REGEXP如果
REGEXP
匹配到了
STRING
中的某个模式,返回该模式匹配
substr STRING POS LENGTH返回起始位置为
POS
(从
1
开始计数)、长度为
LENGTH
个字符的子字符串
index STRING CHARS返回在
STRING
中找到
CHARS
字符串的位置;否则,返回
0
length STRING返回字符串
STRING
的数值长度
+ TOKEN
TOKEN
解释成字符串,即使是个关键字
(EXPRESSION)返回
EXPRESSION
的值
1)例1

#!/bin/bash
# An example of using the expr command
var1=10
var2=20
var3=$(expr $var2 / $var1) //使用expr
echo The result is $var3


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