算术运算

基本类型 / 数字 / 整型

#$(( )) is the whole number arithmetic of bash
d1=$((8 + 2))    #d1 is 10
d2=$((8 - 2))    #d2 is 6
d3=$((8 * 2))    #d3 is 16
d4=$((8 / 2))    #d4 is 4
d5=$((5 % 2))    #d5 is 1
d6=$((-5 % 2))   #d6 is -1, the sign of the dividend
d7=$((-7 / 2))   #d7 is -3, division truncates toward zero
d8=$((2 ** 10))  #d8 is 1024, ** is the power

#(( )) changes a variable in place, $ is not needed inside
d9=1
((d9 += 1))      #d9 is 2
((d9 -= 1))      #d9 is 1
d10=$((d9++))    #d10 is 1, d9 is 2
d11=$((++d9))    #d11 is 3, d9 is 3

#trap: (( )) also sets the exit code, and a result of 0 is a failure
count=0
((count++))
status=$?
#status is 1: count++ gives the old value 0, although count is 1 now

echo "d1 is $d1"
echo "d2 is $d2"
echo "d3 is $d3"
echo "d4 is $d4"
echo "d5 is $d5"
echo "d6 is $d6"
echo "d7 is $d7"
echo "d8 is $d8"
echo "d9 is $d9"
echo "d10 is $d10"
echo "d11 is $d11"
echo "count is $count"
echo "status is $status"