Как назначить вывод команды для переменной?


19

Есть ли способ присвоить значение переменной, то значение, которое мы получаем в терминале, написав любую команду?

Пример команды: sensors

Отсюда получаем температуру процессора. Как я могу присвоить это значение temp_cpuпеременной?


1
Этот вопрос больше подходит Super User или Unix & Linux . Попробуйте temp_cpu=$(sensors)(это превратит переводы строки в пробелы, хотя). Вы также можете использовать grepдля фильтрации нужной вам информации.
Эдвин

1
@edwin, почему вопрос не очень подходит для этого места?
Чепанг

@Tshepang, этот вопрос не является специфическим для Ubuntu, он касается только Unix-подобной оболочки. Таким образом, Unix & Linux .
Эдвин

1
Изменились ли политика / общее мнение? Я думал, что этот сайт приветствует вопросы, которые не обязательно относятся к Ubuntu.
Чепанг

Ответы:


27

Да, вы используете my_var=$(some_command). Например:

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

Или для вашего конкретного примера, используя sedи, grepчтобы получить конкретные данные, которые вы хотите:

$ cpu_temp=$(sensors acpitz-virtual-0 | grep '^temp1:' | sed 's/^temp1: *//;s/ .*//')
$ echo $cpu_temp
+39.0°C
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.