Como atribuir a saída de um comando a uma variável?

19

Existe uma maneira de atribuir um valor a uma variável, esse valor que obtemos no terminal, escrevendo qualquer comando?

Comando de exemplo: sensors

A partir disso, obtemos a temperatura da CPU. Como posso atribuir esse valor a uma temp_cpuvariável?

eeecoder
fonte
11
Esta questão é mais adequada ao Superusuário ou ao Unix e Linux . Tente temp_cpu=$(sensors)(isso transformará novas linhas em espaços). Você também pode grepfiltrar as informações específicas necessárias.
22413 Edwin
11
@edwin Por que a pergunta não é tão adequada para este lugar?
tshepang 23/07
@ Tshepang, esta questão não é específica para o Ubuntu, é apenas sobre o shell semelhante ao Unix . Assim, Unix e Linux .
23413 Edwin
11
A política / opinião geral mudou? Achei que este site recebia perguntas que não eram necessariamente específicas do Ubuntu.
tshepang 23/07

Respostas:

27

Sim você usa my_var=$(some_command). Por exemplo:

$ foo=$(date)
$ echo $foo
Mon Jul 22 18:10:24 CLT 2013

Ou, para o seu exemplo específico, use sede greppara obter os dados específicos que você deseja:

$ cpu_temp=$(sensors acpitz-virtual-0 | grep '^temp1:' | sed 's/^temp1: *//;s/ .*//')
$ echo $cpu_temp
+39.0°C

fonte