终端计算器

编程中经常会有一些数值的计算或者进制的转换,虽然各操作系统都自带了计算器应用,但部分功能还是不算完善,比如取余数、进制转换、引用上次的计算结果等,相较而言,Windows 中的计算器应用还是功能很强大的。其实,作为计算机,计算功能当然是其最基础也是最擅长的功能,仅终端就涵盖了各种各样的计算方式,如bcechoexpr

bc

基础运算

1
2
$ echo 15/4 | bc
$ echo "3+4; 5*2; 5^2; 18/4" | bc

进制转换

十六进制转十进制

1
2
$ echo "ibase=16;A7" | bc
167

二进制转十进制

1
2
$ echo "ibase=2;11111111" | bc
255

十六进制转二进制

1
2
$ echo "ibase=16; obase=2; B5-A4" | bc
10001

last 引用上次计算结果

1
2
3
$ echo "50*4; last+100" | bc 
200
300

last 也可以用.代替

1
$ echo "50*4;.+100" | bc 

交互式计算

一行多个计算表达式,以;分隔

1
2
3
4
5
3+4; 5*2; 5^2; 18/4
7
10
25
4

echo

1
2
3
$ echo $((3+5))
$ echo $(((3+5)*2))
$ echo `date +%Y%m%d`

expr

注意表达式两侧的空格与转义字符

1
2
3
$ expr 6 + 3    # 注意运算符两侧的空格
$ expr 2 \* 3 # 注意转义字符
$ expr 14 % 9

参考资料

  1. Linux 下计算命令:求和、求平均值、求最值 - 运维笔记
因为热爱,所以执着。