shell脚本中对数值运算的方式有三种分别如下:

一、expr 运算方式:

命令操作符:

|        或

&      与

<      小与

<=    小与等于

=       等于

!=      不等于

>=     大于等于

>       大与

+       加

-        减

*        乘,使用时要转义,例:expr (3  \*  4)

/        除

%      求余

也是命令操作符:

string  :  regex
用regex匹配string字符串
match  string  regex
用regex匹配string字符串
substr  string  start  length
截取字符串,start是从1开始计数的
index  string  chars
返回chars所在的位置,没有返回0
length  string
返回字符串的长度
+  token
将token解释为字符串,即使是个关键字
(expression)
返回expression的值,expr 3 + \( 2 + 2 \)

例:variable=$(expr  3 + 4)            用命令替换赋值给变量

注意:运算符两边要有空格 expr 2 + 2


二、方括号运算方式:

$[ operation ]

例:variable=$[ 2 * 3 ]         将运算结果赋值给变量

注意:bash shell数学运算符只支持整数运算,$[ operation ] 两边并不需要空格


三、浮点运算:

bc计算器,可以运算小数位

bc    进入bc计算器,quit退出

    -q    不输出欢迎文字

scale=3    设置浮点运算的小数位

bc计算器在shell脚本中的应用:


方式一:

variable=$(  echo  "options; experession"  |  bc )    用命令替换运行bc命令,options可以设置多个变量,expression为数学表达式。

例:var=$(  echo  "scale=4;var1=3;var2=5;$var1 + $var2"  |  bc )


方式二:内联输入重定向方法

variable=$(bc  << EOF

    options

    statements

    expressions

EOF

)

可以设置变量,运算表达式

例:

var1=20

variable=$( bc <<EOF

    scale = 4

    var2 = 6.2

    $var1 * $var2

EOF

)