曹耘豪的博客

Shell四则运算

  1. 整数运算(expr或双括号)
  2. 浮点运算,使用bc
  3. 计算脚本运行时间
整数运算(expr或双括号)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
expr 1 + 1
2

a=`expr 1 \* 2`
echo $a
2

expr $a / 2
1

echo $((7 * 8))
56
echo $((7 / 8))
0
echo $((7 / $a))
3
浮点运算,使用bc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
echo "1.212*3" | bc
3.636

# 设置精度
echo "scale=2;3/8" | bc
0.37

# 进制转换
abc=192
echo "obase=2;$abc" | bc

abc=11000000
echo "obase=10;ibase=2;$abc" | bc

echo "10^10" | bc
10000000000
echo "sqrt(100)" | bc
10
计算脚本运行时间
1
2
3
4
5
6
7
8
9
start_time=$(date +%s.%N)
# 1558243226.361839356,精确到纳秒
# ...
end_time=$(date +%s.%N)
# 1558243247.833484693
duration_expr=($end_time-$start_time)*1000
# (1558243247.833484693-1558243226.361839356)*1000
duration=$(echo $duration_expr | bc)
# 21471.645337000
   /