当我运行此命令时,当 grep 成功时,它还会打印文件中实际的
$item
。我不想打印内容/$item
。我只是想展示我的回声。
我该怎么做?
if grep "$item" filename; then
echo it exist
else
echo does not exist
fi
使用
-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