0
不知何故,我沒有找到足夠的答案來解決我的問題,只有部分hackarounds。STDOUT&STDERR從前一個命令作爲下一個命令的參數
我正在調用一個單獨的「chained」shell命令(從一個Node應用程序),它啓動一個長時間運行的更新過程,它的stdout/-err應作爲參數移交給第二部分shell命令(另一個登錄到數據庫的Node應用程序)。
我想要做這樣的事情:
updateCommand 2>$err 1>$out ; logDBCommand --log arg err out
- 不能使用
>
,因爲它是隻對文件或文件描述符。 - 另外,如果我使用shell變量(如
error=$({ updateCommand | sed 's/Output/tmp/'; } 2>&1); logDBCommand --log arg \"${error}.\"
),我只能有stdout或混合成一個參數。 - 而且我不想管道,因爲第二個命令(logCommand)應該運行,無論第一個命令執行成功還是失敗。
- 我不想高速緩存文件,使誠實是缺少點並引入另一個異步誤差矢量
- 列表項
如何將緩存到文件導致異步錯誤? – 123
使用管道,雙方同時運行,儘管如果一端關閉,任何一方都可能在SIGPIPE上退出,但是如果你的logCommand處理得很好,儘管用管道解決stdout和stderr仍然很困難 –
@ 123,明顯地結束了一個程序的文件寫入和稍後拾取它是異步的,並且有一個額外的磁盤寫入缺少了這一點,並不是重點(並且可以,並不是說最終會造成問題) –