Linux tee 的使用小結

2021-10-09 22:13:21 字數 2815 閱讀 1042

linux tee 命令用於讀取標準輸入的資料,並將其內容輸出成檔案。

tee 指令會從標準輸入裝置讀取資料,將其內容輸出到標準輸出裝置,同時儲存成檔案。

我們多用來進行日誌的儲存。用下面的 test.sh 可執行檔案來進行演示。

[root@localhost ~]# cat test.sh

#! /usr/bin/bash

echo "hello world"

for i in

do echo $i

done

[root@localhost ~]#

tee。執行 testh.sh 並對它執行過程中的輸出進行儲存。2>&1 :表示標準輸出和錯誤輸出。

[root@localhost ~]# ./test.sh 2>&1 | tee log

hello world12

3[root@localhost ~]# cat log

hello world12

3[root@localhost ~]#

tee -a。追加內容到原檔案內容的後面。

[root@localhost ~]# ./test.sh 2>&1 | tee -a log

hello world12

3[root@localhost ~]# cat log

hello world12

3hello world12

3[root@localhost ~]#

tee。清空原檔案內容,重新寫入。

[root@localhost ~]# ./test.sh 2>&1 | tee log

hello world12

3[root@localhost ~]# cat log

hello world12

3[root@localhost ~]#

當 test.sh 檔案有語法錯誤時。如下:done --> donw

[root@localhost ~]# cat test.sh

#! /usr/bin/bash

# test.sh

echo "hello world"

for i in

do echo $i

donw # 正確的應該是 done

[root@localhost ~]#

tee。

[root@localhost ~]# ./test.sh 2>&1 | tee log

hello world

./test.sh: line 8: syntax error: unexpected end of file

[root@localhost ~]# cat log

hello world

./test.sh: line 8: syntax error: unexpected end of file

[root@localhost ~]#

tee -a。

[root@localhost ~]# ./test.sh 2>&1 | tee -a log

hello world

./test.sh: line 8: syntax error: unexpected end of file

[root@localhost ~]# cat log

hello world

./test.sh: line 8: syntax error: unexpected end of file

hello world

./test.sh: line 8: syntax error: unexpected end of file

[root@localhost ~]#

tee。

[root@localhost ~]# ./test.sh 2>&1 | tee log

hello world

./test.sh: line 8: syntax error: unexpected end of file

[root@localhost ~]# cat log

hello world

./test.sh: line 8: syntax error: unexpected end of file

[root@localhost ~]#

注意:在某些場景下,比如:我不想儲存對的資訊(hello world),只想儲存錯誤的資訊(./test.sh: line 8: syntax error: unexpected end of file),怎麼辦呢?

[root@localhost ~]# ./test.sh 2>> | tee log                      # -bash: syntax error near unexpected token `|'

[root@localhost ~]# ./test.sh "2>>" | tee log                      # 這個沒有報錯,但是不符合期望,因為儲存的是正確的資訊,而不是錯誤的。(單雙引號 結果一樣)

[root@localhost ~]# ./test.sh 2>&2 | tee log                      # 這個沒有報錯,但是不符合期望,因為儲存的是正確的資訊,而不是錯誤的。

暫時還知道怎樣單獨儲存錯誤的資訊。

webpabe的使用小結

1.前端的工程化工具 gulp webpack 主流 2.webpack.config.js配置 專案 優先找本地 全域性 3.概念 webpack是一種靜態編譯工具 預編譯 入口檔案 出口 轉換器 外掛程式 webpack 打包 development 開發環境 production 生產環境 w...

Repo 的使用小結

一 安裝 建立目錄和修改環境變數 mkdir bin path bin path curl bin repo chmod a x bin repo 二 幫助 repo help查詢具體命令的幫助 repo helprepo 倉庫狀態 repo help init狀態 repo status 三 初始...

EmitMapper的使用小結

最近公司開發專案前端使用乙個js框架,後端使用ef,js前台讀取的json採用實體的dto來進行生成。1.普通的對映。public class userinfo public string name public string address public class userinfodto pub...