shell算数运算

i=0
((i++))
echo $i
let i++
expr $i + 1
echo $i 1 | awk '{printf $1+$2}'

求模运算

expr 5 % 2
let i=5%2
((i=5%2))

求幂

let i=5**2
((i=5**2))

进制转换

echo $((8#11)) # 8进制11 = 9
echo $((16#11)) # 16进制11 = 17

ascii字符编码

root@localhost:~# echo -n "$IFS" | od -b
0000000 040 011 012
0000003
root@localhost:~# echo -n "$IFS" | od -c
0000000      \t  \n
0000003

浮点运算

echo "1 13" | awk '{printf("%.3f",$1/$2)}'
echo 0.996293 | awk '{ printf("%s\n", atan2(sqrt(1-$1^2),$1)*180/3.1415926535);}'

随机数

echo $RANDOM
echo "" | awk '{srand();printf("%f",rand());}'

序列数

seq 5 # 1~5数字
seq 1 5 # 1~5数字
seq 1 2 5 # 1 3 5数字
seq -s: 1 2 5 # 1:3:5
seq -w 1 2 14 # 宽度2个
seq -s: -w 1 2 14 # 01:03:05:07:09:11:13
seq -f "0x%g" 1 5