bash
(e expr
) não podem fazer aritmética de ponto flutuante, você precisa da ajuda de bc
.
Por exemplo:
$ IDLE=$(mpstat | grep "all" | cut -c 92-)
Digamos que $IDLE
seja 77,25.
Agora você precisa de bc
:
$ IDLE=77.25
$ CPULD="$(bc <<<"100 - $IDLE")"
$ echo "$CPULD"
22.75
bc
opera em arquivos, então podemos passar a string de manipulação via STDIN, embora eu prefira aqui strings:
$ echo "100 - 45.34" | bc
54.66
$ bc <<<"100 - 45.34"
54.66
Em uma nota diferente, para obter o% IDLE da CPU, em vez de mpstat | grep "all" | cut -c 92-
, você pode fazer:
mpstat | grep -Po 'all.* \K[^ ]+$'