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

14

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

Exemplo de comando: sensors

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

    
por eeecoder 22.07.2013 / 23:59

1 resposta

20

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, usando sed e grep para 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
    
por user132994 23.07.2013 / 00:18