是否可以知道以下命令的输出是否为空?
cat anyfile.txt | grep anymessage
没有将显示的输出放入变量中,也没有将显示的输出重定向到文件
如果未找到匹配项,则 grep 命令以状态 1 退出。您可以像这样使用退出状态:
whatever | grep pattern
echo $?
在 shell 脚本中,您甚至可以编写:
if whatever | grep pattern ; then
# match was found
else
# not found
fi
你可以告诉 grep-q
保持安静:
if grep -q anymessage anyfile.txt ; then
# found
else
# not found
fi
如果您这样做,grep 'sometext' anyfile.txt >/dev/null
则不会打印任何内容。
但是,如果您$?
之后阅读,如果匹配行将显示 0,否则将显示 1。
您可以编写一个带有 if 语句的小脚本并打印出 true 或 false。
也可以使用“grep -c anymessage anyfile.txt”(-c 获取匹配数)