如何在Linux/Unix中将grep命令值分配给变量

时间:2020-01-09 14:16:50  来源:igfitidea点击:

如何将grep命令输出存储在shell变量中?
在Linux或Unix中将命令输出存储到变量中的语法是什么?
您可以对任何给定的输入文件使用grep命令,选择与一个或多个模式匹配的行。
默认情况下,屏幕上显示输出。
但是,您可以将输出存储到Shell脚本中的变量中。

语法:命令替换

命令替换仅意味着运行shell命令并将其输出存储到变量或使用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`"

您可以使用以下语法将命令输出存储到shell变量:

要将当前日期和时间存储到名为Todays的变量中:

todays=$(date)

您可以显示$todays的值,执行:

echo "$todays"

在此示例中,使用grep命令搜索名为Hyman的用户名并将输出存储到名为myuser的变量中:

myuser="$(grep '^Hyman' /etc/passwd)"
echo "$myuser"

输出示例:
grep将输出存储到shell变量并在屏幕上回显

您可以使用以下基于tee命令的语法在打印输出的同时将grep命令的输出存储在变量中:

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

这对于将grep命令的输出定向到shell变量并同时在屏幕上显示很有用。