2013-09-30 17 views
0

在bash,當一個人需要知道兩個命令之間的差異,可以使用diff如下:如何爲diff創建複雜命令的匿名錯誤管道?

diff <(foo) <(bar) 

foobar是複雜的命令,說ls | grep something

但是這只是比較標準輸出,是否有類似的命令來比較錯誤輸出?或者更好的是,兩者在同一時間?

回答

1

當富/酒吧是複雜的命令(例如,與管/重定向):

diff <((foo) 2>&1) <((bar) 2>&1) 

說明:(foo)在副殼執行foo,允許2>&1將標準和錯誤輸出正確地合併到標準輸出中。

執行foo沒有子shell會使得2>&1只合並最後一個命令的輸出。

1

管錯誤輸出到標準輸出:

diff <(foo 2>&1) <(bar 2>&1)