Como armazenar a saída do comando (mpstat) em uma variável no shell script

0

Eu quero armazenar cada saída de comandos mpstat ou mpstat -P ALL , como %usr,%nice,%sys,... em uma variável.

Você pode me ajudar, porque quero somar alguns deles.

    
por avishan sharafi 25.12.2015 / 18:17

1 resposta

1

É difícil, mas ainda assim consegui algo para você.

Esta linha irá imprimir dados da CPU em uma variável chamada CPU

eval "$(mpstat | awk '{print $3}' | xargs | awk '{print $2"="$3}')"

depois de fazer isso, execute echo $CPU

você receberá

[root@localhost BASH]# echo $CPU
all
[root@localhost BASH]#

e para %usr você pode usar eval "$(mpstat | awk '{print $4}' | xargs | awk '{print "USR="$3}')"

veja o exemplo abaixo

[root@localhost BASH]# eval "$(mpstat | awk '{print $4}' | xargs | awk '{print "USR="$3}')"
[root@localhost BASH]# echo $USR
0.11
[root@localhost BASH]#

Espero que você entenda como fazer isso e possa desenvolver um código completo para o que deseja.

Resumo:

[root@localhost BASH]# cat  forsome.sh
#!/bin/bash
eval "$(mpstat | awk '{print $3}' | xargs | awk '{print $2"="$3}')"
eval "$(mpstat | awk '{print $4}' | xargs | awk '{print "USR="$3}')"
echo "Number of CPU's :"$CPU
echo "%usr value      :"$USR

[root@localhost BASH]# ./forsome.sh
Number of CPU's :all
%usr value      :0.11
[root@localhost BASH]#
    
por rɑːdʒɑ 25.12.2015 / 18:42