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)

留言

這個網誌中的熱門文章

Python的10進制與16進制轉換

設定CPU的Cache模式:MTRR

ls -l 顯示出現亂碼