隱藏腳本命令輸出

隱藏腳本命令輸出

我正在建立一個 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類似的東西。檢查您所使用的指令的線上說明頁。

相關內容