A variável used
está vazia, levando à mensagem de erro relacionada ao operador unário. O motivo provável é que não haja rootfs
em df -H
de saída, ou seja, em seu sistema.
$ foo=
$ [ $foo -gt 10 ] && echo OK
bash: [: -gt: unary operator expected
Você também tem alguns outros problemas no seu script, a lógica OR deve ser colocada como:
[ "$foo" -gt "$bar" ] || [ "$foo" -ge 90 ]
Também é melhor usar o comando shell keywod [[
em vez de test
( [
) para evitar muitas armadilhas:
[[ "$foo" -gt "$bar" ]] || [[ "$foo" -ge 90 ]]
Para comparações aritméticas, você também pode usar ((
e operadores aritméticos regulares:
(( "$foo" > "$bar" )) || (( "$foo" >= 90 ))
Você nem precisa colocar $
na frente do nome da variável:
(( foo > bar )) || (( foo >= 90 ))