BASH:将大小与另一个文件大小的百分比进行比较

时间:2017-08-09 14:49:36

标签: linux bash shell

我有以下情况:

A=$(df / | awk 'END{print $4}')
B=$(du -s /tmp | awk '{print $1}')

条件是当$ B小于$ A尺寸的10%时发出警告。

我使用下面的方式似乎并不认识'-lt':

A=$(df / | awk 'END{print $4}')
B=$(du -s /tmp | awk '{print $1}')

if $(($A / $B)) -lt '10'
        then  echo "BLYAD"
fi

: line 8: syntax error near unexpected token `-lt'
: line 8: `if (($A / $B)) -lt '10''

任何想法如何实现?

3 个答案:

答案 0 :(得分:2)

    A=$(df / | awk 'END{print $4}')
    B=$(du -s /tmp | awk '{print $1}')
    echo $A $B | awk '{C = 10*B; if (C < A) print "BLYAD"}'

答案 1 :(得分:1)

您忘记了if语句中的[]

if [ $(($A / $B)) -lt '10' ]
    then  echo "BLYAD"
fi

答案 2 :(得分:0)

if (( A < 10 * B ))
then
  echo "BLYAD"
fi

在bash中,你不能进行分数算术。因此,您应该重写表达式,使其不需要分数,或者使用具有浮点运算的zsh。