linux shell 指令碼【3】 ---- 重定向 與 tee 命令
阿新 • • 發佈:2018-11-10
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 腳步攻略》。 算學習筆記了。跟大家分享一下。
寫的有不妥的地方,還望多多指正!
每天進步一點點!!!