Je découvre le processeur idéal total en utilisant la commande
top -bn1 | grep Cpu | awk -F “,” ‘{print $ 4}’ | sed ‘s / [\ t] * // g’ | sed ‘s /% id //’
Maintenant, je veux trouver le processeur qui est utilisé, donc je tente de soustraire la sortie de la commande de 100
Donc, le script ressemble à:
i=`top -bn1 | grep Cpu | awk -F"," '{print $4}' | sed 's/[ \t]*//g' | sed 's/%id//'` j=100 k=$(( ${j}-${i} )) echo $k
Lors de l’exécution de ce script, la sortie génère une erreur:
100-93.0: erreur de syntaxe: opérateur arithmétique invalide (le jeton d’erreur est “.0”)
Comment dois-je procéder pour soustraire le nombre décimal dérivé de 100?
Vous obtenez cette erreur car l’arithmétique BASH ne peut pas gérer les nombres à virgule flottante et vous obtiendrez la même erreur lors de l’exécution de cette commande dans bash
:
((100-93.0))
Mais vous pouvez ignorer les directives grep
, sed
et tous les bash
. Un seul awk
peut gérer ce calcul comme ceci:
top -bn1 | awk -F, '/Cpu/ {print 100-$4}'