3/5 - (2 голоса)

Как сохранить выходные данные команды grep в переменной оболочки? Каков синтаксис для хранения вывода команды в переменной в Linux или Unix?

Вы можете использовать команду grep для любых заданных входных файлов, выбирая строки, соответствующие одному или нескольким шаблонам. По умолчанию вывод выводится на экран. Но вы можете сохранить вывод в переменную в сценариях оболочки.

Синтаксис

Команды подстановки означают не что иное, как запуск команды оболочки и сохранение ее вывода в переменной или отображение обратно с помощью команды echo. Синтаксис:

VAR=`command-name`
VAR="`grep word /path/to/file`"
## или ##
 
VAR=$(command-name)
VAR="$(grep word /path/to/file)"

Пример

Чтобы отобразить дату и время с помощью команды echo:

echo "Today is $(date)"
## или ##
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 в переменную оболочки и отображения на экране одновременно.

Удаленное администрирование сервера, [email protected]