nohup java -jar xxx.jar >xxx.txt &
nohup java -jar xxx.jar >xxx.txt 2>&1 &
說明: 一個命令的執(zhí)行伴隨著三種輸入輸出 標準輸入(stdin):默認指向鍵盤的輸入,,可以通過標準輸入重定向<,,讓標準輸入指向文件輸入 標準輸出(stdout) :指命令產(chǎn)生的正常的輸出,如echo aaa,,標準輸出默認指向終端顯示器,,可以通過輸出重定向>,讓標準輸出重定向到文件 標準錯誤輸出(stderr):指命令產(chǎn)生的錯誤信息的輸出,如執(zhí)行了不存在的命令,,標準錯誤輸出也默認指向終端顯示器,,同樣可以通過輸出重定向>,讓標準錯誤輸出重定向到文件 所謂的輸出重定向到文件,,是指把默認輸出到終端顯示器的信息寫入到指定文件
標準輸入,標準輸出,,標準錯誤輸出的文件描述符分別時0,,1,2,。
“>” 表示輸出重定向 “2>&1”是指把標準錯誤輸出重定向到標準輸出的引用,,即也重定向到file 例子:
#標準錯誤輸出重定向到log
sh xxx.sh 2> log
#標準輸出重定向到log1,標準錯誤輸出重定向到log2
sh xxx.sh >log1 2>log2
#標準輸出重定向到文件log,,標準錯誤輸出重定向到標準輸出的引用
sh xxx.sh >log 2>&1
#標準錯誤輸出重定向到文件testlog,,標準輸出和重定向到標準錯誤輸出的引用
sh xxx.sh 2>log 1>&2
#標準輸出重定向到log文件,標準錯誤輸出也重定向到log文件
sh xxx.sh 1>log 2>log
補充說明: command>a 2>a 與 command>a 2>&1的區(qū)別: command 1>a 2>&1與command 1>a 2>a還是有區(qū)別的,,區(qū)別就在于前者只打開一次文件a,,后者會打開文件兩次,并導致stdout被stderr覆蓋,,可能導致某些輸出錯誤,。
&1的含義就可以理解為用標準輸出的引用,引用的就是重定向標準輸出產(chǎn)生打開的a,。從IO效率上來講,,command 1>a 2>&1比command 1>a 2>a的效率更高。
|