在if语句中运行的grep命令

时间:2017-05-10 03:12:41

标签: bash unix

if ! grep $1 'dict'; then
firstword=$1
firstletter=${firstword:0:1};
echo $firstletter

else
    echo "hello"
fi

我不确定它的grep是否正在运行,但是当案例Nowdict文件中时,它会打印出来Now到标准输出。如果我放入NowwNoww不在其中,则只会打印N。是什么导致它打印出Now

1 个答案:

答案 0 :(得分:1)

  

是什么导致它打印出“现在”?

grep正在打印Now,因为这是grep默认执行的操作:它打印出与模式匹配的输入行。

如果您不希望grep这样做,请使用-q选项。然后它只会设置返回状态,这是if关心的。

(来自Linux系统上的man grep):

 -q, --quiet, --silent
      Quiet;  do not write anything to standard output.  Exit
      immediately with zero status if any match is found, even
      if an error was detected...