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?


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.