shell 指令碼命令 重定向

2021-08-16 23:19:34 字數 1240 閱讀 9699

希望想將在終端輸出的資訊儲存到檔案,直接在命令後面加上》 filename即可

希望想將在終端輸出的資訊儲存到檔案,直接在命令後面加上》 filename即可

shell允許開啟至多10個檔案,檔案描述符從0,1,2,…,9

在當前路徑下 執行.sh 檔案

./test.sh

如果沒有其許可權:ch

mod+

x[檔案

路徑]查

看當前目

錄結構 chm

od+x

[檔案路

徑]檢視

當前目錄

結構tree

當前資料夾下的目錄結構 如上圖

在我們執行ls test.txt b.txt之後,一共有兩種輸出,其中ls: 無法訪問b.txt: 沒有那個檔案或目錄是錯誤輸出,test.txt是標準輸出。

在上述命令中,我們將原來的標準輸出重定向到了out檔案中,所以控制台只剩下了錯誤提示。

我們來看

/dev/null 2>&1

這條命令其實分為兩命令,乙個是》/dev/null,另乙個是2>&1。

- >/dev/null

這條命令的作用是將標準輸出1重定向到/dev/null中。/dev/null代表linux的空裝置檔案,所有往這個檔案裡面寫入的內容都會丟失,俗稱「黑洞」。那麼執行了》/dev/null之後,標準輸出就會不再存在,沒有任何地方能夠找到輸出的內容。

- 2>&1

這條命令用到了重定向繫結,採用&可以將兩個輸出繫結在一起。這條命令的作用是錯誤輸出將和標準輸出同用乙個檔案描述符,說人話就是錯誤輸出將會和標準輸出輸出到同乙個地方。

linux在執行shell命令之前,就會確定好所有的輸入輸出位置,並且從左到右依次執行重定向的命令,所以》/dev/null 2>&1的作用就是讓標準輸出重定向到/dev/null中(丟棄標準輸出),然後錯誤輸出由於重用了標準輸出的描述符,所以錯誤輸出也被定向到了/dev/null中,錯誤輸出同樣也被丟棄了。執行了這條命令之後,該條shell命令將不會輸出任何資訊到控制台,也不會有任何資訊輸出到檔案中。

歡迎技術交流: [email protected]

shell指令碼 重定向和變數

一 shell指令碼 作用 介於系統核心與使用者之間,負責解釋命令列 可替代大量重複性輸入,並降低錯誤率。定義 將各種linux命令按順序儲存到乙個文字檔案,並新增可執行許可權的檔案 應用場景 重複性操作 批量事務處理 自動化運維 服務執行狀態監控 定時任務執行等 系統支援shell指令碼配置檔案 ...

shell 五 基本命令 輸入輸出重定向

目錄 三 輸入重定向 大多數 unix 系統命令從你的終端接受輸入並將所產生的輸出傳送回 到您的終端。乙個命令通常從乙個叫標準輸入的地方讀取輸入,預設情況下,這恰好是你的終端。同樣,乙個命令通常將其輸出寫入到標準輸出,預設情況下,這也是你的終端。重定向命令列表 命令說明 command file 將...

shell指令碼 命令

命令連線符 表示不管前面是否執行成功都要執行 表示前面執行成功才執行後面 表示前面執行失敗才執行後面 read命令 read 選項 值 read p 提示語句 n 字元個數 t 時間秒 s 不顯示 運算子 expr 3 2 結果賦值 sum expr 3 2 或者 sum 3 2 乘法expr 3 ...