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