Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
在 bash 中,当需要知道两个命令之间的区别时,可以使用diff如下方式:
diff
diff <(foo) <(bar)
当foo和bar是复杂的命令,比如说ls | grep something
foo
bar
ls | grep something
但是这里只比较标准输出,有没有类似的命令来比较错误输出?或者更好的是,两者同时?
管道标准错误到标准输出:
diff <(foo 2>&1) <(bar 2>&1)
当 foo/bar 是复杂的命令(例如使用管道/重定向):
diff <((foo) 2>&1) <((bar) 2>&1)
说明:在子 shell 中(foo)执行,允许正确地将标准和错误输出合并到标准输出中。foo2>&1
(foo)
2>&1
foo在没有子 shell 的情况下执行将2>&1只合并最后一个命令的输出。