2013-02-15 29 views
4

我運行一個名爲upgrade.sh如何記錄shell腳本的輸出並顯示在屏幕上?

和upgrade.sh腳本調用一個名爲roll.sh

roll.sh >> logfile.text 

腳本,但roll.sh有一些問題和提示,並重定向阻止這些產出從擊中屏幕。我無法編輯roll.sh.

我也試過`結果= $(roll.sh)

即使這樣,輸出不會來在屏幕上

回答

12

使用tee,它被用於此目的專門創建:轉發標準輸入到屏幕和一個或多個文件。如果您不想覆蓋它,請確保使用-a選項附加到logfile.text

roll.sh | tee -a logfile.text 
+1

我會補充的唯一的事情就是你應該做'''roll.sh 2>&1 | tee -a logfile.txt'''還捕獲錯誤輸出 – 2013-02-17 19:18:18

1

你想tee

TEE(1)       User Commands       TEE(1) 



NAME 
     tee - read from standard input and write to standard output and files 
1

來處理的常用方法是讓腳本編寫的提示標準錯誤而不是標準輸出。

+0

是的,但他說他不能修改'roll.sh' – chepner 2013-02-15 18:59:20