Наши партнеры

UnixForum





Библиотека сайта rus-linux.net

Как сохранить вывод команды Linux в переменной

Оригинал: How To Assign Output of a Linux Command to a Variable
Автор: Aaron Kili
Дата публикации: 19 января 2017 года
Перевод: А. Кривошей
Дата перевода: январь 2018 г.

Обычно при работе команды Linux выводят на консоль определенную информацию: результат работы программы, либо сообщение о статусе/ошибке выполнения программы. При необходимости вы можете сохранить вывод команды в переменной, которая будет использоваться в последующих операциях.

В этой статье мы рассмотрим различные способы сохранения вывода команды оболочки в переменной, особенно это полезно при создании скриптов оболочки.

Для сохранения вывода команды в переменной вы можете использовать возможность замены команды оболочки в следующих формах:

variable_name=$(command)
variable_name=$(command [option ...] arg1 arg2 ...)

или

variable_name='command'
variable_name='command [option ...] arg1 arg2 ...'

Ниже приведены несколько примеров использования подстановки команд.

В этом первом примере мы будем хранить значение команды who (которая показывает, кто авторизован в системе) в переменной CURRENT_USERS:

$ CURRENT_USERS = $(who)

Затем мы можем использовать переменную в предложении, выводимом с помощью команды echo:

$ echo -e "The following users are logged on the system:\n\n $CURRENT_USERS"

В приведенной выше команде флаг -e означает интерпретацию любых управляющих последовательностей (например, \n для новой строки). Чтобы избежать потери времени и памяти, просто выполните подстановку в команде echo следующим образом:

$ echo -e "The following users are logged on the system:\n\n $(who)"

Пользователи, авторизованные в системе

Затем, чтобы продемонстрировать концепцию использования второй формы, мы можем сохранить общее количество файлов в текущем рабочем каталоге в переменной под названием FILES и использовать ее позже следующим образом:

$ FILES=`sudo find . -type f -print | wc -l`
$ echo "There are $FILES in the current working directory."

Количество файлов в директории

О перенаправлении вывода команд Linux вы можете подробнее узнать в следующих статьях на нашем сайте: