1. 程式人生 > >linux shell 指令碼【3】 ---- 重定向 與 tee 命令

linux shell 指令碼【3】 ---- 重定向 與 tee 命令

1.重定向:


echo "ABCD"  > temp.txt

將ABCD寫入到temp.txt中


echo "ABCD" >> temp.txt

講ABCD追加到temp.txt中


其中

 > 相當於 1>

>>相當於 1>>


1為檔案描述符,

檔案描述符是與一個開啟的檔案或者資料流相關聯的一個整數。

且系統預留了檔案檔案描述符如下:

0 ---- stdin(標準輸入)

1 ---- stdout(標準輸出)

2 ---- stderr(標準錯誤)


如何區分 stdout 與stderr:

當一個命令成功完成後,會返回數字0,此時的輸出為stdout; 而一個命令命令發生錯誤並退出時,它會返回一個非0的退出狀態,此時的輸出為stderr。

命令的退出狀態查詢可以通過命令

echo $?

進行查詢。


我們在使用重定向時會發現一個問題,輸出被重定向到檔案後,在終端就看不到列印了。

如何既重定向又同時終端列印呢??

這個時候就用到命令

tee

了。


echo "ABCD" | tee temp.txt

將輸出內容"ABCD"重定向到 temp.txt同時在終端列印輸出


echo "ABCD" | tee temp.txt temp02.txt

將輸出內容"ABCD"同時重定向到 temp.txt 和 temp02.txt 並且在終端列印輸出


echo "ABCD" | tee -a temp.txt

將輸出內容"ABCD"重定向追加到 temp.txt同時在終端列印輸出


本來該結束了,

但是感覺cat命令的 -n 引數挺有用,

用於輸出新增行號。

在此備忘一下。



注:內容多參照 《Linux Shell 腳步攻略》。 算學習筆記了。跟大家分享一下。

寫的有不妥的地方,還望多多指正!

每天進步一點點!!!