如何在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变量并同时在屏幕上显示很有用。