当前位置:首页>Linux>Linux中如何执行数学运算?

Linux中如何执行数学运算?

  • 2026-10-01 01:04:15
Linux中如何执行数学运算?
在Linux中采用shell编程时执行数学运算必不可少,下面介绍shell脚本中执行数学运算的两种重要方式。
01
数学运算命令expr
expr是由Bourne shell提供的专门用于处理数学表达式的命令,既可在命令行中执行数学运算,也可以在shell脚本中执行数学运算,使用方法如下:
命令行中:expr  operation
shell脚本中:var=$(expr $operation)
通过命令替换获取expr命令的输出结果,再将结果值赋值给变量var。
常用数学表达式及含义如下:
ARG1 & ARG2 ——如果ARG1和ARG2都不为null或0,就返回ARG1;否则返回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之和
注:在使用上述数学表达式进行运算时,部分运算符号容易被shell错误解释为其它含义,比如*,因此需要使用转义字符(\)进行转义。
02
$和方括号实现数学运算
bash shell在保留expr命令使用的基础上,提供了一种更为简单的数学运算方法,即使用$和方括号,适用于命令行及shell脚本,语法格式如下:
$[ operation ]
$1nbsp;var1=$[2 + 5]  $1nbsp;echo $var1  7  $1nbsp;var2=$[$var1 * 2]  $1nbsp;echo $var2  14  $ 
脚本中的使用案例:
$ cat test.sh  #!/bin/bash  var1=10  var2=5  var3=3  var4=$[$var1 * ($var2 - $var3)]  echo The final result is $var4  $  
运行该脚本后,屏幕上显示如下输出结果:
$chmod u+x test.sh  $./test.sh  The final result is 20  $
使用该方式进行数学运算时,不会出现shell将部分运算符号错误解释为其它含义的现象,shell将方括号内的运算符号仅解释为运算符,而不是其它。
注:bash shell的数学运算仅支持整数运算,而zsh则提供了完整的浮点数运算操作。
03
浮点数运算
若需要在bash shell中实现浮点数运算操作,则可通过系统中内建命令bc实现。
(1)bc命令基本使用方法
bash中bc能够识别数字、变量、注释、表达式、编程语句、函数等内容作为bc命令的输入,退出bc时须使用quit。
其中浮点数运算由内建变量scale控制,且通过bc运算过程中必须将该变量的值设置为所希望的计算结果中保留的小数位数,使用scale=n(n为保留小数位数);该变量默认值为0,即运算结果不包含小数位。
bc -q   使用-q选项不显示bash计算器欢迎信息,使用案例如下:
$bc -q  3.44 / 5  0  scale=3  3.44 / 5  .688  quit  $
(2)如何在脚本中使用bc
在脚本中通过命令替换来运行bc命令,从而将输出结果赋值给变量,使用格式如下:
var=$(echo "options; expression" | bc)
其中options部分允许设置一个或多个变量(多个变量用分号分隔);expression部分制定要通过bc执行的数学表达式,使用案例如下:
$ cat test.sh  #!/bin/bash  var1=$(echo " scale=3; 3.44 / 5" | bc)  echo The answer is $var1  $
上述案例中,通过scale变量指定小数位数为3位,执行该脚本后,输出如下内容:
$./test.sh  The answer is .688  $

最新文章

随机文章