使用双括号能够像C语言同样直接使用运算符进行计算。bash
echo $((1+20)) a=$((2*4)) echo $a b=$(($a-3)) echo $b d=$(($b/2)) echo $d e=$(($a%5)) echo $e
使用let命令后,能够直接跟表达式,不用加双括号。spa
let a=1+2 echo $a let b=$a*3 echo $b let c=$b/4 echo $c
相似于let命令,expr命令除了计算表达式,还将提供的表达式的值打印到标准输出。以及使用expr进行比较,增长变量值和查找字符串长度。3d
expr 3 + 5 expr 15 % 3 expr 5 \* 3
expr 5 - 3
expr 20 / 4
NUM=$(( 1 + 2))
echo $NUM
NUM=$(expr $NUM + 2)
echo $NUM
须要注意的是使用expr命令时,数字与运算符之间要用空格隔开。而且”*“需用转义符“\”标注。code
expr 还能够用来比较大小,当表达式求值为false时,expr将打印值0,不然打印1。blog
expr 5 = 3 expr 5 = 5 expr 8 != 5 expr 8 \> 5 expr 8 \< 5 expr 8 \<= 5
同时expr能够用来查看字符串长度。字符串
expr length "hello world!"
#等效于
echo "hello world!" | wc -L
更多expr用法请参照man expr。class
bc其实就是一个基于终端的计算机程序,有交互和非交互两种使用方式。awk
直接输入bc就能够进入交互模式,在里面输入表达式便可。变量
同时也能够经过管道来使用。终端
echo '3+4' | bc echo '3*4' | bc echo '33/4' | bc echo '32%6' | bc echo '33/6' | bc -l
-l 用于精确到小数(默认小数点后20位)计算。
awk很是强大,功能也很是多,这里只介绍其用于算数运算。
awk 'BEGIN { a = 10; b = 3; print "(a + b) = ", (a + b) }' awk 'BEGIN { a = 10; b = 3; print "(a - b) = ", (a - b) }' awk 'BEGIN { a = 10; b = 3; print "(a * b) = ", (a * b) }' awk 'BEGIN { a = 10; b = 3; print "(a / b) = ", (a / b) }' awk 'BEGIN { a = 10; b = 3; print "(a % b) = ", (a % b) }'
factor命令用于将整数分解为素数因子
factor 21 factor 242 factor 2123 factor 200