シェルストリームのリダイレクトに関するすべての質問と回答で、私は自分のものを投稿していますが、何も見つからないようです同様のオンライン。シェルリダイレクト:stdoutまたはstderrにコマンドが出力されないように見える
私の状況を簡単に説明するために、私は特定のバイナリアプリケーションを実行し、特定の文字列の出力を監視してそれらが動作するようにするbashスクリプトを作成しようとしています。
私のバイナリアプリケーションのために立っていたテストスクリプトを使用して、目的の機能を達成することができました。しかし、実際のものとは対照的に、すべての出力をキャプチャしているようには見えません。私は一人でバイナリアプリケーションを実行すると、そのような
status OK
something A
something B
...
something Z
status OK
something A
として出力しかし、私は、分析のために、この出力をリダイレクトしようとすると、私は唯一の「ステータスOK」行を取得します。間にあるすてきなものは欠けています。これは>でファイルにリダイレクトしようとしても当てはまります。最初は私はstdoutに "status"を、stderrに "something"を置くかもしれないと思ったが、それはそうではないようだ。
私はこのアプリが私が読むことができる端末に物を出力することができる場合、どのようにそれをキャプチャできませんか?それは、ターミナルディスプレイによって正しく解釈されるようにフォーマットが奇妙になる可能性はありますが、何らかのリダイレクトによっては何とか解釈されませんか?
洞察力があれば幸いです!
[最小限で完全で検証可能な例を作成する方法](http://stackoverflow.com/help/mcve)をご覧ください。あなたの質問にあなたのコードを追加してください。 – Cyrus
本当にバイナリアプリケーションが何をしているかによって異なります。出力を/ dev/ttyに送信している可能性があります。 stdoutおよび/またはstderrがターミナルデバイスであるかどうかを調べるかもしれません。それは...ほとんど何でもするかもしれない。 –
@Cyrus法的な理由で正確なコードを投稿できませんが、バイナリアプリには重要な詳細が表示されず、ソースコードもありません。私の質問は主に、アプリが>または2>を経由してリダイレクトできない方法で端末にテキストを出力する可能性がある方法を理解することです。しかし、ええ、私はそれがかなり開放的な質問だと理解しています。 – Matt