Как сохранить вывод команды grep в переменной оболочки? Каков синтаксис для хранения вывода команды в переменную для Linux или Unix?
Вы можете использовать grep command для любых заданных входных файлов, выбирая строки, соответствующие одному или нескольким шаблонам. По умолчанию вывод отображается на экране. Но вы можете хранить вывод в переменную в сценариях оболочки.
Синтаксис: замена команд
Подстановка команд означает не что иное, как запуск команды оболочки и сохранение ее вывода в переменную или отображение в исходном состоянии с помощью команды echo. Синтаксис выглядит следующим образом:
VAR=`command-name` VAR="`grep word /path/to/file`" ## or ## VAR=$(command-name) VAR="$(grep word /path/to/file)"
Примеры
Отображение даты и времени с помощью команды echo:
echo "Today is $(date)" ## or ## echo "Today is `date`"
Вы можете сохранить вывод команды в переменную оболочки с помощью следующего синтаксиса:
Чтобы сохранить текущую дату и время в переменном значении, существует команда под названием todays:
todays=$(date)
Вы можете вывести на экран значение $todays, для этого введите:
echo "$todays"
В этом примере используйте команду grep для поиска имени пользователя vivek и сохранения вывода в переменном значении под названием myuser:
myuser="$(grep '^vivek' /etc/passwd)" echo "$myuser"
Примеры вывода данных:
Вы можете сохранить вывод команды grep в переменном значении одновременно с печатью вывода с использованием следующего синтаксиса на основе команды tee:
foo="$(grep '^vivek' /etc/passwd | tee /dev/tty) " echo "$foo"
Это полезно для прямого вывода команды grep на переменную оболочки и отображения на экране одновременно.
Перевод: Анна Давыдова
Источник: cyberciti.biz
Это интересно: