stderr
在stdout
之後重定向時發生了什麼,反之亦然?標準輸出之後stderr重定向時會發生什麼?
例如:
someCommand > log.txt 2>&1
與
someCommand 2>&1 > log.txt
stderr
在stdout
之後重定向時發生了什麼,反之亦然?標準輸出之後stderr重定向時會發生什麼?
例如:
someCommand > log.txt 2>&1
與
someCommand 2>&1 > log.txt
在第一種情況,由於輸出被引導到文件log.txt
然後stderr的被引導至附連到什麼標準輸出(文件log.txt
)。在第二種情況下。標準錯誤指向標準輸出附加到的東西(可能是一個tty),然後stdout被定向到文件log.txt
。
someCommand > log.txt 2>&1
- stdout和stderr都到log.txt
。
someCommand 2>&1 > log.txt
- 標準輸出到log.txt
,標準輸出到前標準輸出(屏幕)。
重定向是在出現的順序進行:
someCommand > log.txt 2>&1
fd(1) == stdout
fd(2) == stderr
log.txt
結果fd(1) == log.txt
fd(2) == fd(1) == log.txt
someCommand 2>&1 > log.txt
fd(1) == stdout
fd(2) == stderr
fd(2) == fd(1) == stdout
log.txt
結果在fd(1) == log.txt