プロセスでstderrメッセージが発生した場合のスクリプトの実行

プロセスでstderrメッセージが発生した場合のスクリプトの実行

stderrメッセージが発生したときにそれをキャプチャするために、あるプロセスを別のプロセスに「包み込みたい」です。

ユースケース

私はそれを使用していますコンパス端末を開いて問題がないか確認する必要があります。私の計画は次のとおりです端末通知エラーが発生したことを知るために、OSX通知を自分に送信するツールです。これにより、常に画面に端末を開いたままにする必要がなくなります。

というシェルスクリプトの下にこれらのすべての通知メカニズムがあり、compass-error.shそれを呼び出すと、スクリプトが通知を送信すると想像してください。次に、compass watch基本プロセスを実行してstderrトリガーされるかどうかを観察したいと思いますcompass-error.sh。どうすればいいですか?

答え1

output="$(./compass 2>&1 1>/dev/null)"
if [ -n "$output" ]; then
  echo "$output" | mail ...
fi

関連情報