shell中的重定向(2 1)

2021-09-06 17:02:43 字數 556 閱讀 5224

shell的輸出可以分為標準輸出和錯誤輸出,2>&1中,2代表錯誤輸出,1代表標準輸出,&符號代表後面跟的是代號而不是檔案。

test.sh

echo '

我是標準輸出

'ls /tmp/b.py

假設不存在/tmp/b.py這個檔案

這裡會輸出:

我是標準輸出

ls: cannot access /tmp/b.py: no such file or directory

第一行是標準輸出,第二行是錯誤輸出

1.

sh test.sh >1

錯誤輸出會出現在終端,也就是螢幕上,標準輸出會在1這個檔案裡面

2.

sh test.sh 2>1

這樣就會反過來,錯誤輸出在1檔案,標準輸出在螢幕

3.

sh test.sh >1

2>&1

這樣錯誤輸出和標準輸出都會輸出到1檔案,2>&1表示先把錯誤輸出輸出到標準輸出,>1 代表標準輸出輸出到1檔案

參考:

shell 2 1問題(重定向)

經常可以在一些指令碼,尤其是在crontab呼叫時發現如下形式的命令呼叫 tmp test.sh tmp test.log 2 1 前半部分 tmp test.sh tmp test.log很容易理解,那麼後面的2 1是怎麼回事呢?要解釋這個問題,還是得提到檔案重定向。我們知道 和 是檔案重定向符。...

Shell中的重定向

幾乎所有的linux命令都是以鍵盤作為輸入,以顯示屏作為輸出。但在linux中,通過重定向你也可以以檔案作為輸入輸出。有三個重定向符號 作用 將命令執行結果輸出到檔案,如果檔案不存在則新建乙個,如果檔案存在則重寫檔案。舉例 cal mycal cat mycal 作用 將命令執行結果輸出到檔案,如果...

shell中輸入重定向,輸出重定向,管道

什麼是檔案描述符 1 程序中開啟乙個檔案就會有乙個檔案描述符 2 檔案描述符是乙個非負整數 3 系統為每乙個程序維護乙個檔案描述符表 程序級檔案描述符 4 同乙個程序裡面不同檔案描述符可以對應同乙個檔案 乙個檔案被開啟多次 5 不同程序的檔案描述符可以相同 不影響 可以指向同乙個檔案,也可以指向不同...