每个人都有每个人的习惯,我把我写shell脚本时变量计算的习惯写一下:
加减乘除的实现方式有很多:
((i=$j+$k)) 等价于 i=`expr $j + $k`((i=$j-$k)) 等价于 i=`expr $j -$k`
((i=$j*$k)) 等价于 i=`expr $j \*$k`
((i=$j/$k)) 等价于 i=`expr $j /$k`
还有很多中方式。。。
使用最简单的一种即可:
用$[]表示数学运算。将一个数学运算写到$[]符号的中括号中,中括号中的内容将先进行数学运算。
例如:
x=$[10-5] #5
y=$[10*5] #50z=$[10/5] #2
但是这种的只能计算整数类型的,小数类型的不支持。
小数类型的计算我使用bc:
a=`echo "scale=3; 153 / 60" | bc` #2.550 scale=3是小数点保留3位
下面是我写的一个小例子:
#!/bin/sh
action_sec=`date +%s`
echo "$action_sec"
sleep 30s
end_sec=`date +%s`
echo "$end_sec"
result_sec=$[$action_sec-$end_sec]
echo "$result_sec"
result_min=`echo "scale=3; $result_sec / 60" | bc`
echo "脚本运行时间是:$result_min min"