当我运行此命令时,它还会在grep成功时打印文件中的实际$项.我不想打印内容/ $ item.我只想表现出我的回声?
有人可以帮忙吗
if grep $item filename; then
echo it exist
else
echo does not exist
fi
Run Code Online (Sandbox Code Playgroud)
谢谢
用途-q:
if grep -q "$item" filename; then
echo "it exists"
else
echo "does not exist"
fi
Run Code Online (Sandbox Code Playgroud)
或者在一个班轮中:
grep -q "$item" filename && echo "it exists" || echo "does not exist"
Run Code Online (Sandbox Code Playgroud)
从 man grep
-q, - quiet, - silent
安静; 不要写任何标准输出.如果发现任何匹配,则立即退出零状态,即使检测到错误也是如此.另请参阅-s或--no-messages选项.(-q由POSIX指定.)
正如AdrianFrühwirth所指出的那样,grep -q仅凭STDIN就会沉默.如果你想摆脱STDERR,你可以将它重定向到/dev/null:
grep -q foo file 2>/dev/null
Run Code Online (Sandbox Code Playgroud)