我有以下情况:
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''
任何想法如何实现?
答案 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。