使用雙括號能夠像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