如何抑制 grep 的输出?

问题描述 投票:0回答:1

当我运行此命令时,当 grep 成功时,它还会打印文件中实际的

$item
。我不想打印内容/
$item
。我只是想展示我的回声。

我该怎么做?

if grep "$item" filename; then
    echo it exist
else
    echo does not exist
fi
bash grep echo
1个回答
10
投票

使用

-q

if grep -q "$item" filename; then
   echo "it exists"
else
    echo "does not exist"
fi

或者单层:

grep -q "$item" filename && echo "it exists" || echo "does not exist"

来自

man grep

-q,--安静,--沉默

安静; 不要向标准输出写入任何内容。 立即退出 如果找到任何匹配项,即使检测到错误,状态也为零。 另请参阅 -s 或 --no-messages 选项。 (-q 由 POSIX 指定。)


正如 Adrian Frühwirth 在下面指出的那样,单独使用

grep -q
只会使 STDIN 静音。如果你想摆脱 STDERR,你可以将其重定向到
/dev/null
:

grep -q foo file 2>/dev/null
© www.soinside.com 2019 - 2024. All rights reserved.