Come posso assegnare l'output di un comando a una variabile?


19

C'è un modo per assegnare un valore a una variabile, quel valore che otteniamo nel terminale scrivendo un comando?

Esempio di comando: sensors

Da ciò otteniamo la temperatura della CPU. Come posso assegnare questo valore a una temp_cpuvariabile?


1
Questa domanda è più adatta a Super User o a Unix e Linux . Prova temp_cpu=$(sensors)(questo trasformerà le nuove linee in spazi, però). Puoi utilizzare anche grepper filtrare le informazioni specifiche di cui hai bisogno.
edwin,

1
@edwin perché la domanda non è così adatta a questo posto?
Tshepang,

@Tshepang, questa domanda non è specifica per Ubuntu, si tratta solo della shell tipo Unix . Pertanto, Unix e Linux .
edwin,

1
La politica / opinione generale è cambiata? Ho pensato che questo sito ha accolto domande che non sono necessariamente specifiche per Ubuntu.
Tshepang,

Risposte:


27

Sì, tu usi my_var=$(some_command). Per esempio:

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

O per il tuo esempio specifico, usando sede grepper ottenere i dati specifici che desideri:

$ cpu_temp=$(sensors acpitz-virtual-0 | grep '^temp1:' | sed 's/^temp1: *//;s/ .*//')
$ echo $cpu_temp
+39.0°C
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.