2012-07-04 33 views
0

我最近向我的.bashrc文件添加了一個ssh-add命令。我發現,爲什麼有些程序在stderr上寫入而不是標準輸出?

ssh-add $HOME/.ssh/id_rsa_github > /dev/null

結果上的消息「的身份加入別的東西」每次我打開一個shell。

雖然

ssh-add $HOME/.ssh/id_rsa_github > /dev/null 2>&1

的伎倆,我的外殼,現在 '乾淨'。

在互聯網上閱讀,我發現其他命令做它,(例如time)。你能解釋爲什麼這樣做嗎?

回答

0

將輸出從一個進程重定向到另一個進程時,例如通過管道

$ procA | procB | procC 

這是使用標準輸出傳統完成。我期望time和類似的命令輸出到標準錯誤,以避免損壞這個流。如果您正在使用時間,那麼您正在診斷問題,並且不希望無意中向下遊流程提供額外的輸入。

This article包括一些進一步的細節和周圍的一些歷史。

相關問題