Bagaimana cara menetapkan output perintah ke variabel?

19

Apakah ada cara untuk menetapkan nilai ke variabel, nilai yang kita dapatkan di terminal dengan menulis perintah?

Contoh perintah: sensors

Dari situ kita mendapatkan suhu CPU. Bagaimana saya bisa menetapkan nilai ini ke temp_cpuvariabel?

eeecoder
sumber
1
Pertanyaan ini lebih cocok untuk Pengguna Super atau untuk Unix & Linux . Coba temp_cpu=$(sensors)(ini akan mengubah baris baru menjadi spasi). Anda dapat menggunakan grepuntuk memfilter info spesifik yang Anda butuhkan juga.
edwin
1
@edwin, mengapa pertanyaannya tidak begitu cocok untuk tempat ini?
tshepang
@Tepang, pertanyaan ini tidak khusus untuk Ubuntu, hanya tentang shell mirip Unix . Jadi, Unix & Linux .
edwin
1
Apakah kebijakan / pendapat umum berubah? Saya pikir situs ini menyambut pertanyaan yang belum tentu spesifik untuk Ubuntu.
tshepang

Jawaban:

27

Ya, Anda menggunakan my_var=$(some_command). Sebagai contoh:

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

Atau untuk contoh spesifik Anda, menggunakan seddan grepuntuk mendapatkan data spesifik yang Anda inginkan:

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

sumber