linux shell 里面四则运算的实现方法

Linux Shell 四则运算与浮点运算实操
本文详细介绍了 Linux Shell 中四则运算的实现方法,并探讨了如何在 Shell 中进行浮点运算。通过使用 $(()) 括号表达式与 expr 命令,展示了简单而有效的方法来完成数学计算。此外,还提到了 bash 不支持浮点运算,推荐使用 bc 或 awk 进行浮点数处理。

linux shell 里面四则运算的实现方法。

 

1.简单方法

[chengmo@centos5 ~]$ b=$((5*5+5-3/2))  
[chengmo@centos5 ~]$ echo $b
29

 

在linux shell中,我们可以使用 $(()) 将表达式放在括号中,即可达到运算的功能。

 

2.其它方法:

用:expr 实现运算

 

[chengmo@centos5 ~]$ expr 5 - 4
1

 

注意:将需要运算的表达式写入在expr 后面即可,保证 参数与运算符号中间有空格隔开。

 

类别 语法 说明
条件判断 expr1 \| expr2 如果 expr1 不是零或 null 则传回 expr1,否则传回 expr2。
expr1 \& expr2 如果 expr1 及 expr2 都不为零或 null,则传回 expr1,否则传回 0。
四则运算 expr1 + expr2 传回 expr1 加 expr2 后的值。
expr1 - expr2 传回 expr1 减 expr2 后的值。
expr1\* expr2 传回 expr1 乘 expr2 后的值。
expr1 / expr2 传回 expr1 除 expr2 后的值。
expr1 % expr2 传回 expr1 除 expr2 的余数。
大小判断 expr1 \> expr2 如果 expr1 大于 expr2 则传回 1,否则传回 0。如果 expr1 及 expr2 都是数字,则是以数字大小判断,否则是以文字判断。以下皆同。
expr1 \< expr2 如果 expr1 小于 expr2 则传回 1,否则传回 0。
expr1 = expr2 如果 expr1 等于 expr2 则传回 1,否则传回 0。
expr1 != expr2 如果 expr1 不等于 expr2 则传回 1,否则传回 0。
expr1 \>= expr2 如果 expr1 大于或等于 expr2 则传回 1,否则传回 0。
expr1 \<= expr2 如果 expr1 小于或等于 expr2 则传回 1,否则传回 0。
文字处理 expr1 : expr2 比较一固定字符串,即 regular expression。可以使用下列字符来辅助:

. 匹配一个字符。

$ 找字符串的结尾。

[list] 找符合 list 中的任何字符串。

* 找寻 0 个或一个以上在 * 之前的字。

\( \) 传回括号中所匹配的字符串。

 

 

3.浮点运算:

[chengmo@centos5 ~]$ expr 5.0 - 4 
expr: 非法参数

 

[chengmo@centos5 ~]$ echo $((5.0-4))
-bash: 5.0-4: syntax error in expression (error token is ".0-4")

 

从上面运算结果,看来上面表达式,不足以支持浮点运算了。查阅资料才发现:bash 不支持浮点运算,如果需要进行浮点运算,需要借助bc,awk 处理。

 

方法一:

[chengmo@centos5 ~]$ c=$(echo "5.01-4*2.0"|bc)
[chengmo@centos5 ~]$ echo $c
-2.99

方法二:

[chengmo@centos5 ~]$ c=$(awk 'BEGIN{print 7.01*5-4.01 }')
[chengmo@centos5 ~]$ echo $c
31.04

 

注:在shell 中$() 与 ``等效。 中间包含命令语句执行,返回执行结果。

原文地址:http://www.cnblogs.com/chengmo/archive/2010/09/30/1839556.html

### 在 Linux 系统中执行四则运算 #### 使用 Shell 内置算术功能 Shell 提供了几种方法来进行基本的数学计算。对于简单的整数运算,可以直接利用 `$(( ))` 或者 `$[]` 来完成。 例如,要计算 `8 - 5` 可以这样做: ```bash echo $[8-5] ``` 这种方式不需要在操作符周围加上空格[^3]。 #### 利用 bc 命令处理更复杂的数值运算 当涉及到浮点数或者其他更为复杂的情况时,则推荐使用 `bc` 工具。Bash 自身仅能处理整数间的简单运算,但对于涉及小数点后的精确度需求,比如保留两位有效数字的结果展示,就需要借助于 `bc` 的力量了。 下面是一个例子展示了如何通过 `bc` 实现带有一位小数点精度控制下的除法操作: ```bash result=$(echo "scale=1; 7 / 3" | bc) echo $result ``` 这里设置了 `scale=1` 参数来指定输出结果中小数部分的最大长度为一位[^1]。 另外还可以直接输入表达式给 `bc` 并获取返回值作为变量存储起来再打印出来,像这样: ```bash addition_result=$(echo "10 + 5" | bc) subtraction_result=$(echo "10 - 5" | bc) multiplication_result=$(echo "10 * 5" | bc) division_result=$(echo "scale=2; 10 / 5" | bc) echo Addition Result: $addition_result echo Subtraction Result: $subtraction_result echo Multiplication Result: $multiplication_result echo Division Result with scale set to 2: $division_result ``` 这段代码分别实现了加法、减法、乘法以及带有特定小数位数设定的除法运算,并将各个结果保存到对应的变量里以便后续调用显示。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值