我需要跑步cmd1
。当且仅当其 STDOUT 中缺少 PATTERN 时,我也需要运行cmd2
:
cmd1 | grep "$PATTERN" || cmd2
但我想查看cmd1 的所有输出,而不仅仅是匹配 PATTERN 的行。
我知道我可以做这样的事情:
OUTPUT=`cmd1`
echo "$OUTPUT"
echo "$OUTPUT" | grep -q "$PATTERN" || cmd2
但这会将 STDOUT 与 STDERR 分开。另外我宁愿有一个方便的单线。所以我正在寻找 grep 中的选项,或者 grep 的替代方案,说“不要过滤,只需设置退出代码”。