天天看點

怎樣把程式執行的結果輸出到一個檔案裡?_從零開始學Linux運維|17.檔案描述符和檔案重定向...

怎樣把程式執行的結果輸出到一個檔案裡?_從零開始學Linux運維|17.檔案描述符和檔案重定向...

檔案傳回值

當我們執行一個指令的時候,指令無論執行成功或者失敗,都會給我們傳回一個執行後的退出狀态

這個狀态使用指令"echo $?"檢視

如果執行成功,傳回值為0

執行了cd指令和ls指令,成功,傳回值為0

怎樣把程式執行的結果輸出到一個檔案裡?_從零開始學Linux運維|17.檔案描述符和檔案重定向...

如果執行失敗,傳回值不為0

進入一個不存在的目錄,報錯,傳回值為1

輸入一個不存在的指令,報錯,傳回值為127

怎樣把程式執行的結果輸出到一個檔案裡?_從零開始學Linux運維|17.檔案描述符和檔案重定向...

從上面兩圖中可以看到,無論執行的指令成功或者失敗,大多都是有提示的

對于沒有提示的指令,我們就可以通過"echo $?"來看是否成功執行

檔案描述符

常用的檔案描述符有0,1,2是标準輸入,标準輸出和錯誤輸出

檔案描述符0,是标準輸入,預設是鍵盤輸入,也可以是用檔案或者其他指令來進行輸入

檔案描述符1,是标準輸出,預設是螢幕,也可以輸出到檔案

檔案描述符2,是标準錯誤,就是程式執行報錯的輸出,預設是螢幕,也可以輸出到檔案

怎樣把程式執行的結果輸出到一個檔案裡?_從零開始學Linux運維|17.檔案描述符和檔案重定向...

檔案輸出重定向

需要認識幾個符号

">"覆寫重定向

">>"追加重定向

我們先建立一個檔案夾"mkdir /root/17test"

進入建立的檔案夾"cd /root/17test"

然後試試上面兩個重定向符号

先實驗追加重定向

"echo 123 >> 17.txt"執行多次,後cat一下這個檔案

怎樣把程式執行的結果輸出到一個檔案裡?_從零開始學Linux運維|17.檔案描述符和檔案重定向...

我執行了3次之後,發現這個檔案也是三行,說明輸出都重定向到這個檔案裡面了

如果是用">"覆寫重定向呢

怎樣把程式執行的結果輸出到一個檔案裡?_從零開始學Linux運維|17.檔案描述符和檔案重定向...

結果顯而易見,隻有最後一條的值

如果我們重定向的時候報錯了會啥樣,我們來試試

怎樣把程式執行的結果輸出到一個檔案裡?_從零開始學Linux運維|17.檔案描述符和檔案重定向...

錯誤列印到了螢幕上,重定向的檔案也被清空了

這裡我們加上檔案描述符再試一次

怎樣把程式執行的結果輸出到一個檔案裡?_從零開始學Linux運維|17.檔案描述符和檔案重定向...

錯誤重定向到了檔案裡面,沒有列印出來

我們建立一個腳本檔案,"vim 17.sh