linux中的各种计算方式expr|bc|dc|let

本文详细介绍了Shell脚本中常用的算术运算工具,包括expr、bc、dc、let及使用((expression))等方法,并提供了丰富的实例说明每种工具的特点与适用场景。

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

1.expr

使用格式:

expr EXPRESSION
使用举例:
$expr 9 + 8 - 7 \* 6 / 5 + \( 4 - 3 \) \* 2
11

使用expr的注意事项:

(a)表达式中量和运算符号之间要有空格及一些运算符号需要转义

(b)expr只适用于整数之间的运算


2.bc

(1)作用:

       bc是一种任意精度的计算语言,注意是一种语言,它提供了一些语法结构,比如条件判断、循环等,可以说是很强大的,但是我在实际中还没有找到需要这个用途的场合 。另外一个用途就是用来进行进制转换。上面我们介绍的expr只支持整数运算,但对于浮点运算就无能为力了,而且expr不能进行指数运算,这些对bc来说都不在话下。

(2)常见的选项

-i 强制交互模式;
-l 使用bc的内置库,bc里有一些数学库,对三角计算等非常实用;例如sin cos
-q 进入bc交互模式时不再输出版本等多余的信息。
(3)使用举例

bc可以有交互模式和非交互模式(和echo配合使用)两种:

#法一:交互模式
$bc -l -q
4/3                   /*未指定精度默认保留整数*/
scale=5               /*指定精度为5*/
4/3
1.33333
ibase=2               /*指定进制转换的输入机制为二进制,输出默认为是十进制*/
10
4^2                   /*指数运算,注:指数不能为浮点数*/
4*a(1)                /*计算π值,a()是个函数:arctan(),好吧,老师教的都被狗吃了,π值是等于四倍的arctan(1)么?*/
3.14159265358979323844
quit                  /*退出*/

#法二:非交互模式
echo "7+3" | bc
echo "s(2/3*a(1))" | bc -l

4.dc

dc相比与bc要复杂,简单的说dc是一直压栈操作,和bc一样,它也可以交互使用,或者与echo一起配合使用。dc也支持浮点运算。

使用举例:

echo "4 3 * 2 + 1 -p" | dc


5.let

作用:let用来计算EXPRESSION

使用格式:

let EXPRESSION
使用举例:
#!/bin/bash
let b=4+5
echo $b

let b++
echo $b

6.使用((expression))来计算表达式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值