在寫 shell 指令碼的時候,我們經常會想將命令的輸出結果儲存到檔案中,或者將命令的執行結果儲存到日誌記錄中。這時候就需要把命令的輸出結果重定向。而要進行重定向,就要了解 linux 的輸入輸出流。
在 linux 中有三個經常用到的輸入輸出流,他們分別是:
在 linux 系統中,系統保留了 0(標準輸入)、1(標準輸出)、2(標準錯誤) 三個檔案描述符分別代表它們。
標準輸入指的是從鍵盤這些標準輸入裝置讀取到的資料。一般情況下標準輸入重定向的很少用到,因此我們就不展開說。
標準輸出則是通過螢幕輸出的這些資料。我們可以通過標準輸出重定向來讓資料儲存到檔案裡。例如:
yurongchandemacbook-pro:chenshuyi yurongchan$ echo "hello shell, i'm shuyi" > out.txt
yurongchandemacbook-pro:chenshuyi yurongchan$ cat out.txt
hello shell, i'm shuyi
可以看到 echo 命令的輸出並沒有在螢幕上列印出來,而是儲存在了 out.txt 檔案中。
其實上面這種方式和echo "hello" 1> out.txt
這條命令的結果是一樣的。或許是因為標準輸出重定向比較頻繁,所以就把數字 1 省略了。
標準錯誤是指輸出的錯誤資訊。例如當我們執行一條錯誤的指令時,控制台會提示湊無資訊,這些就是錯誤資訊。如果我們要重定向錯誤資訊到檔案中,我們可以用2>
這個操作符。例如:
yurongchandemacbook-pro:chenshuyi yurongchan$ ls +
ls: +: no such file or directory
yurongchandemacbook-pro:chenshuyi yurongchan$ ls + 2> error.txt
yurongchandemacbook-pro:chenshuyi yurongchan$ cat error.txt
ls: +: no such file or directory
通過2>
這個操作符,我們將標準錯誤重定向到了 error.txt 檔案中了。
說到這裡,輸入輸出重定向就說完了。其實這一章很簡單,就是通過1>
和2>
這兩個操作符達到輸出重定向的目的。
Shell教程十一 Shell 輸入 輸出重定向
大多數 unix 系統命令從你的終端接受輸入並將所產生的輸出傳送回 到您的終端。乙個命令通常從乙個叫標準輸入的地方讀取輸入,預設情況下,這恰好是你的終端。同樣,乙個命令通常將其輸出寫入到標準輸出,預設情況下,這也是你的終端。重定向命令列表如下 命令說明 command file 將輸出重定向到 fi...
c 入門教程 十五
好久沒敲黑板了 前方高能預警 今天的內容可能有些繞,但是,蠻有用的。至少,好玩。前面我們說過,宣告乙個變數,相當於在記憶體中要了一塊空間。不同型別的變數要的空間的大小是不一樣的。既然有了空間,那麼,它就有個開始的位置 比如學校就有門牌號 我們用符號 來獲取乙個變數的位址。用法如下 要獲取首位址的變數...
Golang入門教程(十五)指標
指標是乙個變數,用於儲存另乙個變數的記憶體位址。在上面的例子中,變數b的值是156,儲存在記憶體位址0x1040a124。變數a包含b的位址。可以說現在a指向b。指向型別t的指標用 t表示 讓我們寫一些 package main import fmt func main 運算子用於獲取變數的位址。在...