Estou com um problema bastante estranho, estou executando um script (Bash) em vários servidores e ele parou de funcionar em um dos servidores (funciona perfeitamente em todos os outros servidores).
Aqui está a parte problemática do script: (eu não o escrevi, todos os créditos vão para "Rich") ( http://www.notrainers.org/monitoring-memory-usage-on-linux-with-nagios- e-nrpe / )
if [ "$result" -lt "$warn_level" ]; then #Line 56
echo "Memory OK. $result% used."
exit 0;
elif [ "$result" -ge "$warn_level" ] && [ "$result" -le "$critical_level" ]; then #Line 59
echo "Memory WARNING. $result% used."
exit 1;
elif [ "$result" -gt "$critical_level" ]; then #Line 62
echo "Memory CRITICAL. $result% used."
exit 2;
fi
Mensagem de erro completa:
./check_memory.sh: Line 56: [: 7.: integer expression expected
./check_memory.sh: Line 59: [: 7.: integer expression expected
./check_memory.sh: Line 62: [: 7.: integer expression expected
Se precisar de mais informações, entre em contato e tentarei fornecê-las o mais rápido possível.
Aprecie todas as entradas :)
${result%%.*}seria a expansão correta para remover o ponto decimal aqui. Mas observe quecut -c -2isso também causará problemas com números de 100 ou mais; portanto, é mais seguro descartá-lo completamente.