在bash中,当需要知道两个命令之间的差异时,可以使用diff
,如下所示:
diff <(foo) <(bar)
当foo
和bar
是复杂命令时,请说ls | grep something
但这只比较标准输出,是否有类似命令来比较错误输出?或者更好的是,两者同时进行?
答案 0 :(得分:1)
将stderr传递给stdout:
diff <(foo 2>&1) <(bar 2>&1)
答案 1 :(得分:1)
当foo / bar是复杂命令时(例如使用管道/重定向):
diff <((foo) 2>&1) <((bar) 2>&1)
说明:(foo)
在子shell中执行foo
,允许2>&1
将标准输出和错误输出正确合并到标准输出中。
在没有子shell的情况下执行foo
将使2>&1
仅合并最后一个命令的输出。