Поиск по сайту:

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


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

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

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

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

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

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

CURRENT_USERS=$(who)

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

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

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

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

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

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

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