Эта команда awk
печатает два значения в двух отдельных строках, в то время как read
читает одну строку, ожидая найти в ней два поля.
Измените команду print
на print $7, $2;
, чтобы печатать числа в одной строке. Поскольку вы пометили это с помощью Bash, вы можете использовать строку здесь -вместо документа здесь -, чтобы сделать полную команду более аккуратной:
$ read -r Available Total <<< $( free -m | awk '/^Mem/{print $7, $2;}' )
Или используйте подстановку процесса:
$ read -r Available Total < <( free -m | awk '/^Mem/{print $7, $2;}' )
Если вы используете echo $(...)
без кавычек вокруг подстановки команды, вывод команды разделяется на слово -, а echo
видит отдельные строки как отдельные аргументы. Он печатает все свои аргументы, объединенные пробелами, то есть в одной строке.
echo $(foo)
обычно довольно бесполезно, но это не одно и то же только foo
именно по этой причине. Он также помещает последнюю новую строку в конце вывода foo
, если ее еще не было.
Вам потребуется извлечь три из *.deb
файлов из папки .tar.gz
:
cpu-x_4.1.0+15.1_amd64.deb
, основная программа cpuidtool_0.5.0_amd64.deb
инструмент, используемый ЦП -X-программа libcpuid15_0.5.0_amd64.deb
, библиотека, используемая инструментом Остальные файлы символов отладки(-dbgsym
)и файлы разработки(-dev
); они не нужны для запуска программы, только для ее отладки или использования библиотеки libcpuid
в другом проекте программирования.
После извлечения трех файлов запустите эту команду в каталоге, в который вы их поместили, от имени пользователя root:
apt install./cpuidtool_0.5.0_amd64.deb./libcpuid15_0.5.0_amd64.deb./cpu-x_4.1.0+15.1_amd64.deb
...и все. ./
перед именами пакетов имеет важное значение :он указывает apt
не пытаться найти именованные пакеты в репозитории, как обычно, а использовать файлы пакетов, которые у вас есть прямо там.
После этого вы сможете запустить программу, выполнив команду cpu-x
(от имени обычного пользователя )или найдя программу в меню графического интерфейса пользователя (Системная категория, возможно ).