
我正在建立一個 shell 腳本來自動配置具有最佳設定的特定電腦。我想隱藏此腳本中除回顯輸出之外的所有輸出。是否可以?
答案1
開始你的腳本:
exec 3>&1 1>/dev/null 2>&1
這會將 stdout 的原始檔案描述符儲存到 &3,然後將 stdout 和 stderr 重新導向到 /dev/null。每當您想要列印某些內容時,請將其輸出重新導向至 &3,例如:
echo "This message won't be output"
echo "But this one will" >&3
如果你想隱藏這個細節,你可以定義一個與 fd 3 相呼應的函數:
say() {
echo >&3 "$@"
}
say "This goes to the log"
答案2
/dev/null
您可以透過新增將標準輸出重定向到
1>/dev/null
在將產生輸出的腳本的每一行的末尾。
您可以透過新增相同的方式重定向錯誤
2>/dev/null
大多數命令還可以選擇關閉控制台的正常輸出,例如-q
類似的東西。檢查您所使用的指令的線上說明頁。