Wie ordne ich die Ausgabe eines Befehls einer Variablen zu?

19

Gibt es eine Möglichkeit, einer Variablen einen Wert zuzuweisen, den Wert, den wir durch das Schreiben eines Befehls im Terminal erhalten?

Beispielbefehl: sensors

Daraus erhalten wir die CPU-Temperatur. Wie kann ich diesen Wert einer temp_cpuVariablen zuweisen ?

eeecoder
quelle
1
Diese Frage ist eher für Superuser oder für Unix & Linux geeignet . Versuchen Sie es temp_cpu=$(sensors)(dies wird jedoch Zeilenumbrüche in Leerzeichen umwandeln). Mit können Sie auch grepdie gewünschten Informationen filtern.
Edwin
1
@edwin warum ist die frage für diesen ort nicht so geeignet?
Tshepang
@Tshepang, diese Frage ist nicht Ubuntu-spezifisch, es geht nur um die Unix-ähnliche Shell. Also Unix & Linux .
Edwin
1
Hat sich die Politik / allgemeine Meinung geändert? Ich dachte, diese Seite würde Fragen begrüßen, die nicht unbedingt für Ubuntu spezifisch sind.
Tshepang

Antworten:

27

Ja, du verwendest my_var=$(some_command). Beispielsweise:

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

Oder verwenden Sie für Ihr spezielles Beispiel sedund grep, um die gewünschten Daten abzurufen:

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

quelle