¿Cómo asigno la salida de un comando a una variable?

19

¿Hay alguna manera de asignar un valor a una variable, ese valor que obtenemos en la terminal escribiendo algún comando?

Comando de ejemplo: sensors

De eso obtenemos la temperatura de la CPU. ¿Cómo puedo asignar este valor a una temp_cpuvariable?

eeecoder
fuente
1
Esta pregunta es más adecuada para Superusuario o para Unix y Linux . Intente temp_cpu=$(sensors)(sin embargo, esto convertirá las nuevas líneas en espacios). También puede usar greppara filtrar la información específica que necesita.
edwin
1
@edwin, ¿por qué la pregunta no es tan adecuada para este lugar?
tshepang
@Tshepang, esta pregunta no es específica de Ubuntu, solo se trata del shell tipo Unix . Por lo tanto, Unix y Linux .
edwin
1
¿Cambió la política / opinión general? Pensé que este sitio aceptaba preguntas que no son necesariamente específicas de Ubuntu.
tshepang

Respuestas:

27

Sí, lo usas my_var=$(some_command). Por ejemplo:

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

O para su ejemplo específico, usando sedy greppara obtener los datos específicos que desea:

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

fuente