端末アプリケーションがクラッシュした場合にのみstderrパイプ

端末アプリケーションがクラッシュした場合にのみstderrパイプ

端末でユーザーと対話するプログラムがあります。

しかし、衝突が発生した場合は、他のツールを介して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ユーティリティを使用する代わりに、フォーマットユーティリティを使用してエラーテキストを出力できます。

おすすめ記事