iT邦幫忙

DAY 29
2

我與BASH shell scripting的每一天系列 第 29

我與BASH的每一天 - [29] 同時將訊息輸出至畫面與重導到檔案 - tee

我想將程式執行時的訊息記錄下來成為log檔,透過重導向**>**我就可以輕易辦到。但是如果要將同樣的訊息同時顯示輸出,同時建立log檔,就有一點棘手了。我想過一邊導向到log檔( > log),同時導向到標準輸出也就是螢幕畫面( > &1),但是不work。後來試過先將訊息存到變數裡,再分別將變數輸出與導向到檔案,雖然work但是笨了點。

終於我發現tee可以幫我這個忙,他可以將訊息輸出同時寫入檔案,一個動作完成,一點也不累贅。

do_function | tee -a log-file

do_function的結果會輸出到畫面,同時以append的方式輸出到log-flie中。

[系列文章]

我與BASH的每一天 - [1]利用bc命令來取得數字字串中的特定欄位值
我與BASH的每一天 - [2]直取字串變數中的特定欄位值
我與BASH的每一天 - [3] 利用awk來擷取特定欄位
我與BASH的每一天 - [4] 利用awk來擷取特定欄位-2
我與BASH的每一天 - [5] 利用awk來擷取特定欄位-3
我與BASH的每一天 - [6] 利用cut來擷取特定欄位
我與BASH的每一天 - [7] grep指令的妙用 - 1
我與BASH的每一天 - [8] grep指令的妙用 - 2
我與BASH的每一天 - [9] 正規化表示法 - 1
我與BASH的每一天 - [10] 正規化表示法 - 2
我與BASH的每一天 - [11] 正規化表示法 - 3
我與BASH的每一天 - [12] 正規化表示法 - 4
我與BASH的每一天 - [13] sed - 1
我與BASH的每一天 - [14] sed - 2
我與BASH的每一天 - [15] sed - 3
我與BASH的每一天 - [16] 多條件選擇 - case
我與BASH的每一天 - [17] 建立自動化的暫存檔 - mktemp
我與BASH的每一天 - [18] if 條件判斷的正規化用法
我與BASH的每一天 - [19] 複合式的條件判斷
我與BASH的每一天 - [20] 代表參數位置的特殊變數符號與shift
我與BASH的每一天 - [21] 特殊的參數變數符號: $@ 與 $*
我與BASH的每一天 - [22] while-loop與array的結合
我與BASH的每一天 - [23] 顯示程式執行的進度
我與BASH的每一天 - [24] 打包initrd image
我與BASH的每一天 - [25] 紀錄鍵盤動作的命令 - script
我與BASH的每一天 - [26] 使用者參數選項 - getopts
我與BASH的每一天 - [27] getopts 的錯誤控制設計
我與BASH的每一天 - [28] 分割檔案 - split


上一篇
我與BASH的每一天 - [28] 分割檔案 - split
下一篇
我與BASH的每一天 - [30] 自動將檔案上傳到另一機器 - ssh、ssh-keygen 與 scp
系列文
我與BASH shell scripting的每一天31

1 則留言

我要留言

立即登入留言