检查“cat”的输出是否为空

时间:2013-07-29 10:35:04

标签: linux bash shell sh

是否可以知道以下命令的输出是否为空?

cat anyfile.txt | grep anymessage

不将显示的输出放入变量,也不将显示的输出重定向到文件

5 个答案:

答案 0 :(得分:7)

如果未找到匹配项,则grep命令以状态1退出。您可以使用退出状态,如下所示:

whatever | grep pattern
echo $?

在shell脚本中,您甚至可以写:

if whatever | grep pattern ; then
     # match was found
else
     # not found
fi

答案 1 :(得分:2)

如果您执行grep 'sometext' anyfile.txt >/dev/null,则不会打印任何内容。

但是,如果您之后阅读$?,如果匹配行则显示0,否则显示1。

答案 2 :(得分:1)

您可以使用if语句编写一个小脚本并打印出true或false。

答案 3 :(得分:1)

你可以告诉grep -q安静:

if  grep -q anymessage anyfile.txt ; then
    # found
else
    # not found
fi

答案 4 :(得分:0)

也可以使用“grep -c anymessage anyfile.txt”(-c获取匹配数)