我不明白以下if
条件。我知道这/dev/null 2 > &1
正在将输出发送到错误流(如果我错了,请纠正我)。但当它处于某种if
状态时我不明白
if /usr/bin/egrep -e "$param1" -e "$param2" -e "param3" ${file} > /dev/null 2>&1
then
bla bla
答案1
它只if
对 grep 的退出代码感兴趣(是否找到某些与条件匹配的行),而不是 grep 命令的输出,因此它将所有输出重定向到 /dev/null,这意味着无处可去。
此重定向分两部分进行:
> /dev/null
将标准输出重定向到任何地方,即egrep通常输出的行2>&1
将错误输出也重定向到与标准输出相同的位置,即/dev/null;这是为了抑制来自egrep 的错误消息。