Linux 关于grep的退出价值 Command1没有任何输出 Command2输出“0”
请参阅grep的帮助 退出状态 grep实用程序使用以下值之一退出:Linux 关于grep的退出价值 Command1没有任何输出 Command2输出“0”,linux,shell,grep,Linux,Shell,Grep,请参阅grep的帮助 退出状态 grep实用程序使用以下值之一退出: (echo "123" | grep "xyz" > /dev/null) && echo $ (echo "123" | grep "123" > /dev/null) && echo $? 我对“表达式1和表达式2”感到困惑。 如果expression1为true,则将执行expression2。对吗 如果grep匹配“123”,它将返回零(0等于false)。如果返回零,ex
(echo "123" | grep "xyz" > /dev/null) && echo $
(echo "123" | grep "123" > /dev/null) && echo $?
我对“表达式1和表达式2”感到困惑。
如果expression1为true,则将执行expression2。对吗
如果grep匹配“123”,它将返回零(0等于false)。如果返回零,expression1将为false。为什么在expression1为false时执行
echo$?
您假定0等于false
是不正确的。恰恰相反。0表示命令执行成功,正如grep的帮助所说。因此,任何非零退出状态都被视为错误,因此false
。if
语句中常用的test
命令也是如此
考虑到这一点,该脚本的结果与预期一致
0 One or more lines were selected.
1 No lines were selected.
>1 An error occurred.