Как выставить значение команды grep в переменную для Linux / Unix

Как сохранить вывод команды 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 в переменную для Linux / Unix
Рис.01: grep сохраняет вывод в оболочке переменной и возвращает его на экран с помощью команды echo

Вы можете сохранить вывод команды grep в переменном значении одновременно с печатью вывода с использованием следующего синтаксиса на основе команды tee:

foo="$(grep '^vivek' /etc/passwd | tee /dev/tty) "
echo "$foo"

Это полезно для прямого вывода команды grep на переменную оболочки и отображения на экране одновременно.

 

Перевод: Анна Давыдова
Источник: cyberciti.biz

Это интересно:

Оставить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *