Làm thế nào để tôi gán đầu ra của một lệnh cho một biến?


19

Có cách nào để gán một giá trị cho một biến, giá trị mà chúng ta nhận được trong terminal bằng cách viết bất kỳ lệnh nào không?

Lệnh ví dụ: sensors

Từ đó chúng ta có được nhiệt độ CPU. Làm thế nào tôi có thể gán giá trị này cho một temp_cpubiến?


1
Câu hỏi này phù hợp hơn với Super User hoặc Unix & Linux . Hãy thử temp_cpu=$(sensors)(điều này sẽ chuyển dòng mới sang không gian, mặc dù). Bạn cũng có thể sử dụng grepđể lọc thông tin cụ thể mà bạn cần.
edwin

1
@edwin tại sao câu hỏi không phù hợp với nơi này?
tshepang

@Tshepang, câu hỏi này không dành riêng cho Ubuntu, nó chỉ nói về phần vỏ giống như Unix . Do đó, Unix & Linux .
edwin

1
Chính sách / ý kiến ​​chung có thay đổi không? Tôi nghĩ rằng trang web này hoan nghênh các câu hỏi không nhất thiết phải dành riêng cho Ubuntu.
tshepang 23/07/13

Câu trả lời:


27

Vâng, bạn sử dụng my_var=$(some_command) . Ví dụ:

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

Hoặc cho ví dụ cụ thể của bạn, sử dụng sedgrepđể lấy dữ liệu cụ thể bạn muốn:

$ cpu_temp=$(sensors acpitz-virtual-0 | grep '^temp1:' | sed 's/^temp1: *//;s/ .*//')
$ echo $cpu_temp
+39.0°C
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.