天天看點

make 2>&1 | tee log.txt指令解析:

1. make是什麼?

make是linux下一個非常強大的指令,簡單點就是你要編譯你的源代碼就得靠他了。

2. 2>&1是什麼意思?

0 stdin,1 stdout,2 stderr

2>&1應該分成兩個部分來看,一個是2>以及另一個是&1,

其中2>就是将标準出錯重定向到某個特定的地方;&1是指無論标準輸出在哪裡。

是以2>&1的意思就是說無論标準出錯在哪裡(哪怕是沒有?),都将标準出錯重定向到标準輸出中。

3. | 管道

管道的作用是提供一個通道,将上一個程式的标準輸出重定向到下一個程式作為下一個程式的标準輸入。

通常使用管道的好處是一方面形式上簡單,另一方面其執行效率要遠高于使用臨時檔案。

這裡使用管道的目的是将make程式的輸出重定向到下一個程式,其最終目的是用來将輸出log存入檔案中。

4. tee是用來幹什麼的?

tee從标準輸入中讀取,并将讀入的内容寫到标準輸出以及檔案中。

是以這裡tee指令的作用是将資料讀入并寫到标準輸出以及log.txt中。

之是以要将編譯産生的log儲存到log.txt中,

其原因是你的标準輸出的緩存可能是有限制的,而你編譯程式産生的log可能會很多,

這樣很可能會造成log不完整;

其目的是當程式發生編譯錯誤的時候,我們可以從log.txt中看到完整的編譯log,

這樣友善查找編譯錯誤。