Comment attribuer la sortie d'une commande à une variable?

19

Existe-t-il un moyen d'attribuer une valeur à une variable, cette valeur que nous obtenons dans le terminal en écrivant une commande?

Exemple de commande: sensors

De là, nous obtenons la température du processeur. Comment puis-je affecter cette valeur à une temp_cpuvariable?

eeecoder
la source
1
Cette question est plus adaptée au Super User ou à Unix & Linux . Essayez temp_cpu=$(sensors)(cela transformera cependant les nouvelles lignes en espaces). Vous pouvez également utiliser greppour filtrer les informations spécifiques dont vous avez besoin.
edwin
1
@edwin pourquoi la question n'est-elle pas si adaptée à cet endroit?
tshepang
@Tshepang, cette question n'est pas spécifique à Ubuntu, elle concerne uniquement le shell de type Unix . Ainsi, Unix et Linux .
edwin
1
La politique / l'opinion générale a-t-elle changé? Je pensais que ce site accueillait des questions qui n'étaient pas nécessairement spécifiques à Ubuntu.
tshepang

Réponses:

27

Oui, vous utilisez my_var=$(some_command). Par exemple:

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

Ou pour votre exemple spécifique, en utilisant sedet greppour obtenir les données spécifiques que vous souhaitez:

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

la source