python ${OOB} >/dev/null
等價於 python ${OOB} 1>/dev/null 2>&1(Bash 語法中 > 同時重定向 stdout 和 stderr)。
| 符號/變量 | 含義 |
|---|---|
python | 調用 Python 解釋器執行腳本 |
${OOB} | Shell 變量,通常指 Python 腳本文件路徑或命令參數(需在腳本上下文中定義) |
> | 輸出重定向操作符 |
/dev/null | Linux 特殊設備文件,「黑洞」—— 寫入的所有數據被丟棄,讀取返回 EOF |
> (Bash 擴展) | 同時重定向標準輸出 (stdout, fd=1) 和標準錯誤 (stderr, fd=2) |
print、logging 等)和錯誤信息(異常堆棧、sys.stderr.write 等)均被丟棄,不顯示在終端,不寫入日志文件。$?)仍可獲取,判斷腳本執行成敗。if python ${OOB} >/dev/null; then echo "成功"; fi# 僅丟棄標準輸出,保留錯誤輸出(推薦,便於排查問題)
python ${OOB} >/dev/null
# 僅丟棄錯誤輸出
python ${OOB} 2>/dev/null
# 將輸出和錯誤分別導向文件
python ${OOB} >output.log 2>error.log
# 將錯誤合併到輸出文件
python ${OOB} >output.log 2>&1
${OOB} 必須在當前 Shell 環境中已定義(如 OOB="/path/to/script.py"),否則會報錯「unbound variable」或執行 python 空命令。> 語法,需用 2>&1 >/dev/null。理解重定向機制是 Shell 腳本調試與部署的基礎技能,善用 /dev/null 控制輸出噪音,關鍵時刻保留錯誤信息才是負責任的工程態度。