Jak przypisać wynik polecenia do zmiennej?

19

Czy istnieje sposób przypisania wartości do zmiennej, którą otrzymujemy w terminalu, pisząc jakieś polecenie?

Przykładowe polecenie: sensors

Z tego otrzymujemy temperaturę procesora. Jak mogę przypisać tę wartość do temp_cpuzmiennej?

eeecoder
źródło
1
To pytanie jest bardziej odpowiednie dla Super User lub Unix i Linux . Spróbuj temp_cpu=$(sensors)(jednak zmieni to znaki nowej linii w spacje). Możesz także użyć grepdo filtrowania potrzebnych informacji.
edwin
1
@edwin dlaczego pytanie nie jest odpowiednie dla tego miejsca?
tshepang
@Thehepang, to pytanie nie jest specyficzne dla Ubuntu, dotyczy tylko powłoki podobnej do Uniksa . Zatem Unix i Linux .
edwin
1
Czy zmieniła się polityka / opinia ogólna? Wydawało mi się, że w tej witrynie mile widziane są pytania, które niekoniecznie są specyficzne dla Ubuntu.
tshepang

Odpowiedzi:

27

Tak, używasz my_var=$(some_command). Na przykład:

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

Lub na konkretny przykład, używając sedi grepaby uzyskać określone dane, które chcesz:

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

źródło