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