隨着關於重定向shell流的所有問題和答案,我很驚訝我張貼我自己的一個,但我似乎無法找到任何東西類似的在線。外殼重定向:命令不會輸出到標準輸出或標準錯誤
爲了簡單描述我的情況,我正在嘗試編寫一個bash腳本,它將運行特定的二進制應用程序並監視特定字符串的輸出,以便它可以對它們起作用。
我能夠通過測試腳本來實現所需的功能,該測試腳本支持我的二進制應用程序。然而,當對真實的東西跑,它似乎並沒有捕獲所有的輸出。當我獨自運行的二進制應用程序,它輸出這樣
status OK
something A
something B
...
something Z
status OK
something A
但是,當我嘗試將此輸出重定向進行分析,我只得到了「狀態OK」線。中間所有的好東西都沒有。即使我嘗試使用>將其重定向到文件,情況也是如此。起初我認爲它可能會在標準輸出上放置「狀態」,在標準輸出上放置「某些東西」,但似乎並非如此。
如果這個應用程序能夠輸出東西到終端,我可以讀取,我怎麼不能捕獲它?有沒有可能格式化是奇怪的,以至於它被終端顯示器正確解釋,但不知何故,不通過任何類型的重定向?
任何有識之士將不勝感激!
請看看[如何創建最小,完整和可驗證的示例](http://stackoverflow.com/help/mcve)。將您的代碼添加到您的問題。 – Cyrus
這真的取決於二進制應用程序在做什麼。它可能會將輸出發送到/ dev/tty。它可能會檢查標準輸出和/或標準錯誤以查看它們是否是終端設備。它可能...幾乎可以做任何事情。 –
@Cyrus由於法律原因,我無法發佈確切的代碼,但是,重要的細節隱藏在二進制應用程序中,我沒有源代碼。我的問題主要是瞭解應用程序可以通過>或2>方式將文本輸出到終端的可能方式。但是,我知道這是一個相當開放的問題。 – Matt