Como você já está usando o awk, talvez a maneira mais simples seja fazer o comparação de flutuação dentro desta linguagem também:
MAX_LOAD=10.0
if ! </proc/loadavg awk -vmax_load=$MAX_LOAD '{ exit $1 > max_load }'
then
echo Alert
fi
Observe que há alguns truques acontecendo: o operador !
inverte o teste. Isso é necessário porque a expressão booleana
awk e o código de status que a construção if
recebe valores
significados opostos. O <
é usado para direcionar o arquivo /proc/loadavg
na entrada padrão do awk. Chamando o awk com -vmax_load=$MAX_LOAD
define a variável awk max_load
para o valor da variável shell
MAX_LOAD
.
No seu caso particular, desde que seu MAX_LOAD é um inteiro, e desde tudo o que você está lendo o primeiro float de um arquivo, uma solução ad-hoc seria:
if [ $(</proc/loadavg cut -f1 -d.) -gt $MAX_LOAD ] ...
A chamada para cut
extrairá a parte integral do primeiro número
em código%. A ideia se quebra se qualquer uma das suposições
indicado acima se tornar falso, no entanto.