スクリプトコマンド出力を隠す

スクリプトコマンド出力を隠す

最適な設定で特定のコンピュータを自動的に構成するシェルスクリプトを作成しています。エコー出力を除いて、このスクリプトのすべての出力を非表示にしたいと思います。可能ですか?

ベストアンサー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"

おすすめ記事