linux中/dev/null與2>&1講解


首先先來看下幾種標識的含義:

  • /dev/null 表示空設備文件
  • 0 表示stdin標准輸入
  • 1 表示stdout標准輸出
  • 2 表示stderr標准錯誤

    先看/dev/null 

    command > /dev/null相當於執行了command 1 > /dev/null。執行command產生了標准輸出stdout(用1表示),重定向到/dev/null的設備文件中

/dev/null可以理解為/dev路徑下的空文件;該命令將command命令的標准輸出輸出到空文件中;

    再看 1>test.log

    執行./test.sh > res1.log 或 ./test.sh 1> res1.log結果為
我們發現stdout被重定向到了res1.log中,stderr並沒有被重定向到res1.log中,stderr被打印到了屏幕上。
    2>test.log
    執行./test.sh 2> res3.log結果為
我們發現stderr被重定向到了res3.log中

    2>&1

    command>a 2>&1 可以理解為執行command產生的標准輸出重定向到文件a中,標准錯誤也重定向到文件a中,期間只打開一次文件a,&1的含義就可以理解為用標准輸出的引用,引用的就是重定向標准輸出產生打開的a。
 
    執行./test.sh>res2.log 2>&1結果為
這次我們發現stdout和stderr都被重定向到了res2.log中了
 
下面是一個掛后台的樣例:
 
nohup sh loop_dwa_m_sms_chunjie_fs_zdg.sh 20190120 >loop_dwa_m_sms_chunjie_fs_zdg.log 2>&1 &
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM