Linux拓展之使用 shell 进行数学运算

Posted 二木成林

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux拓展之使用 shell 进行数学运算相关的知识,希望对你有一定的参考价值。

概述

Bash shell 使用 let(( ))[ ] 执行基本的算术操作。命令 exprbc 可以用来执行高级操作。

let 命令

可以使用 let 命令进行一些基本的算术操作。当使用 let 时,在引用变量值不需要在变量名前添加 $ 符号。例如:

a=1
b=3
let result=a+b+3
echo $result

注:不支持浮点数运算。可以进行自加(let num++)、自减(let num--)操作。

[ ] 操作符

操作符 [ ] 的使用同 let 命令一样,语法格式如下:

num1=3
num2=4
result=$[ num1 + num2 ]
echo $result

注意:

  • 也不支持浮点数运算。
  • [ ] 内对空格没有强制要求。即 $[ 1 + 2 ]$[ 1+2 ]$[1+2] 都是可以的。
  • [ ] 中引用变量的值既可以加 $ 符号也可以不加。如 $[ num1 + num2 ]$[ $num1 + $num2 ] 都是可以的。

(( )) 操作符

操作符 (( )) 使用的语法格式如下:

num1=3
num2=4
result=$(( num1 + num2 ))
echo $result

注意:

  • 也不支持浮点数运算。
  • (( )) 内对空格也没有要求。$((num1+num2))$((num1 + num2))$(( num1 + num2 )) 都是可以的。
  • (( )) 中引用变量的值既可以加 $ 符号也可以不加。如 $(( num1 + num2 ))$(( $num1 + $num2 )) 都是可以的。

expr 命令

expr 命令的格式如下:

num=13
result=$(expr $num + 5)
# 或者
# result=`expr $num + 5`
echo $result

注意:

  • 也不支持浮点数运算。
  • $() 表示获取 expr 命令的执行结果。
  • expr 命令后面跟的运算式对空格有要求。expr $num+5 是错误的。
  • 引用变量的值必须在变量名前面使用 $ 符号。

bc 命令

bc 命令可以用于数学运算,支持浮点数运算并使用一些高级函数。基本使用如下:

num=12
result=$(echo "$num*1.5" | bc)
echo $result

该命令更多请参考:Linux命令之计算器bc

以上是关于Linux拓展之使用 shell 进行数学运算的主要内容,如果未能解决你的问题,请参考以下文章

Linux拓展之Shell中函数的返回值

Linux拓展之Shell默认变量值

linux之Shell编程--Shell基本运算符之算数运算符和关系运算符实例演示

Linux拓展之Shell变量扩展${}

shell之数学运算

Linux通过传入变量进行数学运算