Fala, pessoal!
Queria compartilhar uma análise de uma questão do quiz que achei bem específica, daquelas para fazer a gente pensar.
A questão dá um cenário (empresa Techsafe) e pede a interpretação correta da saída do nosso comando completo de monitoramento da CPU:
top -bn1 | grep "Cpu(s)" | sed "s/.*, ([0-9.])% id./\1/" | awk '{print "Uso da CPU: " 100 - $1 "%"}'
Aí vêm as alternativas. A maioria é fácil de descartar (como "quantidade de processos" ou "interrupções de hardware").
Mas duas delas me deixaram na dúvida:
O valor indica o percentual de tempo que a CPU está sendo utilizada. (Esta foi marcada como INCORRETA)
O comando calcula o uso da CPU subtraindo o tempo ocioso de 100%. (Esta foi marcada como a CORRETA)
No começo eu achei estranho, porque o resultado final (ex: "Uso da CPU: 5%") é o percentual de tempo que a CPU está sendo usada. A alternativa (1) parece certa.
Só que, analisando o comando, a alternativa (2) é a única que descreve exatamente o que o comando faz, que é o ponto principal da aula.
Vamos quebrar o comando para ver:
top -bn1 | grep "Cpu(s)": Pega a linha da CPU.
| sed "... ([0-9.]*) ... id ...": Extrai (captura) apenas o número do tempo ocioso (id).
| awk '{print "Uso da CPU: " 100 - $1 "%"}': O "coração" da lógica está aqui. O awk pega o valor ocioso (que vira o $1) e faz a conta: 100 - $1.
Ou seja, o comando literalmente calcula o uso subtraindo o tempo ocioso de 100.
A alternativa (1) é uma consequência do cálculo, mas a (2) é a descrição do cálculo em si.
E a alternativa que diz "O valor representa o tempo total que a CPU passou ociosa" também estaria errada, porque o awk inverte esse valor (100 - ociosidade).
Por isso, a alternativa (2) é a mais correta e completa, pois ela descreve a mecânica exata do comando que foi construído.
O que vocês acharam? Também viram como "pega-ratão"?
 
             
             Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!
   Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!