bash中 2>&1 & 的解釋
*/2 * * * * cd workspace; python run.py > log/run.py.log 2>&1
1、bash中0,1,2三個數字分别代表:
- 0 STDIN_FILENO 标準輸入(一般是鍵盤)
- 1 STDOUT_FILENO 标準輸出(一般是使用者終端控制台)
- 2 STDERR_FILENO 标準錯誤(出錯資訊輸出)
2、輸入輸出重定向,
- 重定向輸入:在指令中指定具體的輸入來源,譬如 cat < test.c
- 輸出重定向:指定具體的輸出目标以替換預設的标準輸出,譬如ls > 1.txt
3、> 和 >> 的差別:
- > 用于建立
- >> 用于追加
4、2>&1 就是用來将标準錯誤2重定向到标準輸出1中的
- 1前面的&就是為了讓bash将1解釋成标準輸出而不是檔案1
- 最後一個&,則是讓bash在背景執行
參考