在shell脚本中,我如何比较这些变量
echo $du //170G
echo $expected_du // 40G
if [ $expected_du -le $du ]
then
echo "$du exceeded";
fi
答案 0 :(得分:2)
使用-k
标记du
,返回大小,以千字节为单位,不含任何单位。例如:
$ du -ks /tmp
1068 /tmp
现在您有一个可以使用-le
进行比较的数字。
您还可以在脚本中添加多个内容:
case $du in
*K) du_k=${du%K};;
*M) du_k=$(( ${du%M} * 1024 ));;
*G) du_k=$(( ${du%G} * 1024 *1024 ));;
*T) du_k=$(( ${du%T} * 1024 *1024 * 1024 ));;
*[0-9]) du_k=$du;;
*) echo "What?"
exit 1
;;
esac
echo $du_k