2014-08-28 79 views
0

我已經使用sshUnit2創建了測試[shUnit2是基於Bourne的shell腳本的xUnit單元測試框架]。一旦執行測試,我可以看到控制檯上的執行情況,包括測試狀態。我想將包括錯誤/異常的輸出重定向到一個網頁,就像rspec中的rake任務一樣。非常感謝您的幫助。將測試shell腳本狀態輸出到網頁

+0

對不起,我還沒有嘗試過。我是shell的新手,所以需要一些指導。 – user1877775 2014-08-28 21:14:35

回答

1

當你在終端輸入一個命令時,你會得到標準輸出。如果您想查看stderr的錯誤,您必須將2>&1添加到您的命令(YOUR_COMMAND 2>&1)中,將它們從stderr重定向到stdout。

要在Web瀏覽器中查看命令的輸出,可以將輸出傳送到netcat(例如YOUR_COMMAND 2>&1 | netcat -l -p PORT_NUMBER)。現在該命令會等待,直到您瀏覽到網絡瀏覽器localhost:PORT_NUMBER。打開URL後,netcat將打印一些特定於服務器客戶端的內容,然後退出。您可以通過將其重定向到/ dev/null(YOUR_COMMAND 2>&1 | netcat -l -p PORT_NUMBER 2>&1 >/dev/null)來防止netcat輸出。

如果要在瀏覽器中加載內容後保持「命令輸出服務器」狀態,則必須遍歷該命令。隨着while true你可以無限循環。那麼while true; do YOUR_COMMAND 2>&1 | netcat -l -p PORT_NUMBER 2>&1 >/dev/null; done保持服務器活着。最後,你可以在後臺運行整個事件。

例如您的最終命令看起來是這樣的:

while true; do date 2>&1 | netcat -l -p 8888 2>&1 >/dev/null; done & 

(瀏覽127.0.0.1:8888看到當前日期和時間)