1.Shell中的数值运算 问题 本案例要求熟悉Linux Shell环境的特点,主要练习以下操作: 使用expr、KaTeX parse error: Unexpected character: '' at position 110: …复上述计算,最多显示4位小数 ̲步骤 实现此案例需要按照如下步…符号。 首先定义变量X=1234,然后分别计算与78的加减乘除和求模运算结果: [root@svr5 ~]# X=1234 //定义变量X [root@svr5 ~]# expr $X + 78 //加法 1312 [root@svr5 ~]# expr $X - 78 //减法 1156 [root@svr5 ~]# expr $X * 78 //乘法,操作符应添加\转义 96252 [root@svr5 ~]# expr $X / 78 //除法,仅保留整除结果 15 [root@svr5 ~]# expr X 642 ) 使 用 X % 78 //求模 64 2)使用 X642)使用[]或$(())表达式 乘法操作无需转义,运算符两侧可以无空格;引用变量可省略 $ 符号;计算结果替换表达式本身,可结合echo命令输出。 同样对于变量X=1234,分别计算与78的加减乘除和求模运算结果: [root@svr5 ~]# X=1234 [root@svr5 ~]# echo $[X+78] 1312 [root@svr5 ~]# echo $[X-78] 1156 [root@svr5 ~]# echo $[X78] 96252 [root@svr5 ~]# echo $[X/78] 15 [root@svr5 ~]# echo [ X 643 ) 使 用 l e t 命 令 e x p r 或 [Xx] 64 3)使用let命令 expr或 [X643)使用let命令expr或[]、$(())方式只进行运算,并不会改变变量的值;而let命令可以直接对变量值做运算再保存新的值。因此变量X=1234,在执行let运算后的值会变更;另外,let运算操作并不显示结果,但是可以结合echo命令来查看: [root@svr5 ~]# X=1234 [root@svr5 ~]# let X+=78 ; echo $X 1312 [root@svr5 ~]# let X-=78 ; echo $X 1234 [root@svr5 ~]# let X*=78 ; echo $X 96252 [root@svr5 ~]# let X/=78 ; echo $X 1234 [root@svr5 ~]# let X%=78 ; echo $X 64 步骤二:小数运算工具 1)bc交互式运算 先执行bc命令进入交互环境,然后再输入需要计算的表达式。以计算小数12.34与5.678的四则运算为例,相关操作如下: [root@svr5 ~]# bc bc 1.06.95 Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc. This is free software with ABSOLUTELY NO WARRANTY. For details type `warranty’. 12.34+56.78 //加法 69.12 12.34-56.78 //减法 -44.44 12.3456.78 //乘法 700.66 12.34/56.78 //除法 0 quit //退出交互计算器 [root@svr5 ~]# 2)bc非交互式运算 将需要运算的表达式通过管道操作交给bc运算。注意,小数位的长度可采用scale=N限制,除此以外也受参与运算的数值的小数位影响。以计算小数12.34与5.678的四则运算为例,相关操作如下: [root@svr5 ~]# echo ‘scale=4;12.34+5.678’ | bc 18.018 [root@svr5 ~]# echo ‘scale=4;12.34-5.678’ | bc 6.662 [root@svr5 ~]# echo 'scale=4;12.345.678’ | bc 70.0665 [root@svr5 ~]# echo ‘scale=4;12.34/5.678’ | bc 2.1733