tee指令:儲存且同時顯示於螢幕
tee
tee就是指大寫「T」的形狀,左端輸出結果(stdout)進入,右端繼續處理,多了下端儲存至檔案。參考維基百科的示意圖
螢幕 & 檔案
想將執行結果儲存於檔案中,可使用「>」達到目的,例如:
ls -l > file.txt
但這樣輸出文字就只傳送到file.txt,螢幕不會顯示,藉由tee指令可以讓螢幕同步顯示結果:
ls -l | tee file.txt
若是想附加到文件之後
ls -l >> file.txt
螢幕同步顯示則加入參數「-a」
ls -l | tee -a file.txt
變數 & 螢幕
想將執行結果儲存於變數,例如:
var=$(ls -l)
但這樣輸出文字螢幕也不會顯示,藉由tee指令讓輸出文字寫到/dev/tty,就可以讓螢幕顯示。
var=$(ls -l | tee /dev/tty)
或者使用「偽終端(/dev/pty/)」達成螢幕顯示的需求,可使用tty指令找到當前的偽終端。
my_tty=$(tty)
var=$(ls -l | tee $my_tty)
留言
張貼留言