端末でユーザーと対話するプログラムがあります。
しかし、衝突が発生した場合は、他のツールを介してstderrをパイプして整理/きれいな印刷をしたいと思います。
これを行う方法はありますか?
私が知っている限り、stderrをリダイレクトする方法には、すべてstdoutを使用して対話型端末を非表示または中断することが含まれます。
答え1
小さなbashスクリプトでプログラムをラップする必要があるかもしれませんが、可能です。ファイルを画面にstderr
保持しながらファイルにリダイレクトできます。stdout
#!/usr/bin/env bash
# Run my program, with stderr saved to a file
my_program 2> /tmp/stderr_output.txt
# If the program returned with anything but success, print stderr
if [ ! $! ]; then
cat /tmp/stderr_output.txt
fi
cat
ユーティリティを使用する代わりに、フォーマットユーティリティを使用してエラーテキストを出力できます。