2017-10-18 86 views
-1

在Linux上,我使用「tee」來捕獲「」命令的輸出並將其打印輸出日誌文件,但失敗。我使用的命令是這樣的:如何在Linux中將「tee」與「source」命令一起使用?

source ./my_run.sh 2>&1 | tee -i my_run_log 

my_run.sh的目的是爲「使」一些編譯工作,以及像CDRM一些日常工作svn update。的my_run.sh內容就像如下:

make clean 
    cd .. 
    rm ./xxx 
    svn up -r 166 
    cd ./aaa/ 
    sed -i -e ...... 
    make compile 
    make run 

然而,當我運行它的「發球」是行不通的,而且不給我的日誌文件在所有。爲了驗證整個環境還是不錯的,我做了一個簡單的測試:

ll 2>&1 | tee -i log 

,並在這個簡單的場景中,「發球」工作完全正常,並打印出「日誌」如我所料。 任何人都可以幫助我找出我的問題在哪裏? 順便說一句, 我正在的Red Hat Linux(版本5.9),使用的bash shell。 在此先感謝!

一些意見: 我做了一些測試,發現只要my_run.sh劇本已經得到了「令XXX」,在它的東西,然後在「發球」將失敗。 似乎像tee不喜歡make。任何解決方案?

+0

事後尋找'my_run_log'的地方? –

+0

很難說......我只能說「它適合我」 – tink

+0

@tink我嘗試了更多的組合,發現如果shell中有「make xxx」的東西,那麼我的「tee」會失敗;如果shell沒有「make xxx」,那麼「tee」工作正常。似乎「tee」不喜歡「make」? – katyusza

回答

1

問題解決了;非常感謝@thatotherguy將我帶入解決方案。日誌輸出實際上被刪除了make clean進程。在修復clean東西后,在makefile之後,一切都很好。