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