天天看點

shell程式設計——日志輸出的同時顯屏

在執行腳本的時候我們常常需要将執行過程全部輸出到日志裡,以備出現報錯時可以跟蹤分析,開始我用的是exec:

exec >info.log  #把全部執行過程輸出到info日志中
exec >error.log #把系統抛出和腳本定義的錯誤輸出到error日志中
           

但後來發現這樣很多需要顯示到螢幕的内容也不出來的,怎麼樣才能保證即在顯屏的同時輸出日志呢?我選擇了使用fifo管道檔案和tee

mkfifo info.fifo
mkfifo error.fifo
#建立管道檔案
cat info.fifo | tee -a info.log &
exec >info.fifo   
#把執行過程輸出到info檔案中
cat error.fifo | tee -a error.log &
exec >error.fifo 
#把報錯輸出到error檔案中
.
.
執行腳本
.
.
printf "\015"  #結束從管道檔案中擷取資訊