shell腳本中:1>&2 2>&1 &>filename重定向的含義和區別

當初在shell中, 看到">&1"和">&2"始終不明白什麼意思.通過在網上的搜索得以解惑.其實這是兩種輸出.html

在 shell 程式中,最常使用的 FD (file descriptor) 大概有三個, 分別是:前端

0 是一個文件描述符,表示標準輸入(stdin)
是一個文件描述符,表示標準輸出(stdout)shell

是一個文件描述符,表示標準錯誤(stderr)bash

在標準狀況下, 這些FD分別跟以下設備關聯: 
stdin(0):     keyboard 鍵盤輸入,並返回在前端 
stdout(1):   monitor 正確返回值 輸出到前端 
stderr(2):    monitor 錯誤返回值 輸出到前端htm

 >是重定向符,就是把前面輸出的內容重定向到後面指定的位置,好比(例1):blog

 

& 是一個描述符,若是1或2前不加&,會被當成一個普通文件。ip

1>&2 意思是把標準輸出重定向到標準錯誤.it

2>&1 意思是把標準錯誤輸出重定向到標準輸出。class

&>filename 意思是把標準輸出和標準錯誤輸出都重定向到文件filename百度

 

下面是來自百度知道的內容,你們能夠參考下:

問:Linux重定向中 >&2 怎麼理解?
問題補充:echo "aaaaaaaaaaaaaaaa" >&2 怎麼理解?

答:

>&2 即 1>&2 也就是把結果輸出到和標準錯誤同樣;以前若是有定義標準錯誤重定向到某log文件,那麼標準輸出也重定向到這個log文件
如:ls 2>a1 >&2 (等同 ls >a1 2>&1)
把標準輸出和標準錯誤都重定向到a1,終端上看不到任何信息。

參考:https://www.cnblogs.com/liuchaogege/p/6124669.html

相關文章
相關標籤/搜索