Shell中的数值运算

本文介绍了在Linux Shell环境中进行数值运算的方法,包括使用expr、[]、$(())以及let命令。详细展示了加减乘除和求模运算的实例,并解释了各运算方式的区别。此外,还探讨了使用bc进行小数运算,包括交互式和非交互式计算,以及如何通过scale参数控制小数精度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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 X642)使用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 $[X
78]
96252
[root@svr5 ~]# echo $[X/78]
15
[root@svr5 ~]# echo [X643)使用let命令expr或[X%78] 64 3)使用let命令 expr或[X643使letexpr[]、$(())方式只进行运算,并不会改变变量的值;而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.34
5.678’ | bc
70.0665
[root@svr5 ~]# echo ‘scale=4;12.34/5.678’ | bc
2.1733

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

董筱杰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值