关于退出grep的价值

时间:2016-03-25 08:47:41

标签: linux shell grep

(echo "123" | grep "xyz" > /dev/null) && echo $
(echo "123" | grep "123" > /dev/null) && echo $?
  1. Command1没有任何输出。
  2. Command2输出' 0'。
  3. 请参阅grep。

    的帮助
      

    退出状态        grep实用程序以下列值之一退出:

     0     One or more lines were selected.
     1     No lines were selected.
     >1    An error occurred.
    

    我对"表达1&&表达式2&#34 ;. 如果expression1为true,则执行expression2。是吗?

    如果grep匹配" 123",它将返回零(0等于false)。如果返回零,则expression1将为false。当expression1为false时,为什么echo $?被执行?

1 个答案:

答案 0 :(得分:1)

您的假设0等于false是不正确的。情况正好相反。 0表示命令执行成功,就像grep的帮助所说的那样。因此,任何非零退出状态都被视为错误,因此falsetest语句中常用的if命令也是如此。

考虑到这一点,此脚本的结果符合预期。