Як призначити результат команди змінній?


20

Чи є спосіб присвоїти значення змінній, це значення, яке ми отримуємо в терміналі, написавши будь-яку команду?

Приклад команди: sensors

З цього ми отримуємо температуру процесора. Як я можу призначити це значення temp_cpuзмінній?


1
Це питання більше підходить для Super User або Unix & Linux . Спробуйте temp_cpu=$(sensors)(це все ж перетворить нові рядки в пробіли). Ви можете grepтакож фільтрувати потрібну інформацію.
Едвін

1
@edwin, чому питання не так підходить для цього місця?
thepang

@Tshepang, це питання не є специфічним для Ubuntu, мова йде лише про оболонці Unix . Таким чином, Unix & Linux .
edwin

1
Чи змінилася політика / загальна думка? Я вважав, що цей сайт вітає питання, які не обов'язково стосуються Ubuntu.
thepang

Відповіді:


28

Так, ви використовуєте 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.