当我运行此命令时,它还会在grep成功时打印文件中的实际$项。我不想打印内容/ $ item。我只想表现出我的回声? 有人可以帮忙吗
if grep $item filename; then
echo it exist
else
echo does not exist
fi
由于
答案 0 :(得分:6)
使用-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 , - quiet, - silent
安静; 不要向标准输出写任何东西。立即退出 如果找到任何匹配,则为零状态,即使检测到错误也是如此。 另请参阅-s或--no-messages选项。 (-q由POSIX指定。)
仅Adrian Frühwirth points below,仅grep -q
就会使STDIN沉默。如果您想摆脱STDERR,可以将其重定向到/dev/null
:
grep -q foo file 2>/dev/null