Как присвоить вывод команды 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."
На этом пока все, в этой статье мы объяснили методы присвоения вывода команды оболочки переменной. Вы можете добавить свои мысли к этому посту через раздел обратной связи ниже.