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
作用:let用来计算EXPRESSION
使用格式:
let EXPRESSION
使用举例:#!/bin/bash
let b=4+5
echo $b
let b++
echo $b
6.使用((expression))来计算表达式