問題タブ [stdout]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - log4j/log4net で stdout をキャプチャ
Java で stdout に書き込むライブラリがあります。log4j を使用して、この出力をログに記録したいと思います。(私はこのライブラリを作成していないため、ライブラリ内のコードを制御することはできません)。
これを行う簡単な方法はありますか?System.setOut は正しいアプローチですか? System.setOut には何を渡すのですか?
また、.NET/C# でこれを行うにはどうすればよいでしょうか?
console - *input* に相当する `tee` コマンド?
unixtee
コマンドは、標準入力を stdout とファイルに分割します。
私が必要としているのは、複数の入力を 1 つの出力にマージして、逆に機能するものです。2 つ (またはそれ以上) のコマンドの stdout を連結する必要があります。
このアプリのセマンティクスがどうあるべきかわからない - 各引数が完全なコマンドであると仮定しましょう。
例:
コンテンツを含むファイルを生成する必要があります
私は試した
うまくいきません。
補足:各コマンドの出力をファイルに追加するだけでよいことはわかっていますが、これを一度に行いたいです(実際には、マージされた出力を別のプログラムにパイプしたいのです)。
また、私は自分で巻くことができましたが、余裕があるときはいつでも怠惰です:-)
そうそう、それが Windows で動作するならいいと思います (ただし、UnxUtils/msys/etc を介して、bash/Linux 風味のソリューションは動作すると思います)。
stdout - ABAP 標準出力および標準エラー出力
ABAP は stdout と stderr への書き込みを許可しますか? ジョブ スケジューラ (クロナクル) を介して SAP システムへのインターフェイス接続をテストする小さなプログラムを作成する必要があります。たとえば、「Hello World!」と開始/書き込みます。+ 日付 + stdout/exit までの時間。私はこの一見些細なプログラムを担当する .net プログラマーですが、行き詰まっています。
c - Cでstdoutを上書きする方法
最近のほとんどのシェルでは、上矢印と下矢印を押すと、以前に実行したコマンドがプロンプトに表示されます。私の質問は、これはどのように機能するのですか?!
シェルがstdoutを何らかの形で操作して、すでに書き込まれたものを上書きしているように思えますか?
wget のようなプログラムもこれを行うことに気付きました。誰かがそれをどのように行うか知っていますか?
linux - linux: プロセスの開始後に stdout をリダイレクトするようにしました
重複の可能性:
プロセスが Linux で別のプロセスの stdout と stderr をインターセプトするにはどうすればよいですか?
コンソールへの標準出力を使用して、すでに開始されているプロセスがあります。再起動せずにファイルにリダイレクトできますか?
python - Python の subprocess.Popen は、同じ stdout を返すべきではありませんが、返します
Python の subprocess.Popen で非常に奇妙な問題が発生しています。私はそれを使用して外部exeを数回呼び出し、出力をリストに保持しています。
この外部 exe を呼び出すたびに、異なる文字列が返されます。ただし、Popen を使用して何度か呼び出すと、常にSAME string が返されます。=:-O
exeをリコールせずに、Popenがstdoutから常に同じ値を返しているようです。実際にexeを再度呼び出さずに、ある種のキャッシュを実行している可能性があります。
これは私のコードです:
いったい私は何を間違っているのでしょうか?!
shell - エラーとしての警告をエミュレートするシェルスクリプト?
一部のコンパイラでは、警告をエラーとして設定できます。これにより、コンパイラの警告を残さないようにすることができます。これを行うと、コードがビルドされないためです。これは良いことです。
残念ながら、一部のコンパイラにはwarnings-as-errors のフラグがありません。
この機能を提供するシェル スクリプトまたはラッパーを作成する必要があります。
おそらく、コンパイル コンソールの出力を解析し、コンパイラの警告 (またはエラー) があった場合は失敗を返し、それ以外の場合は成功を返します。「失敗」とは、オブジェクト コードを生成してはならない (と私は思う) ことも意味します。
上記の明示的な要件と、それ以外の場合はコンパイラと同じように動作するという次の暗黙の要件を満たす、記述できる最も短くて単純な UNIX/Linux シェル スクリプトは何ですか: - すべてのフラグ、オプション、引数を受け入れます - stdout と stderr のリダイレクトをサポートします- 指示どおりにオブジェクト コードとリンクを作成する
キーワード: エレガントで、すべての要件を満たしています。
おまけ: GNU make ファイルに簡単に組み込むことができます。
ご協力いただきありがとうございます。
=== 手がかり === 別の問題に対するこの解決策は、シェル関数 (?) を使用して bash の stderr リダイレクトにテキストを追加することで解決される可能性があります。私の質問?
===回答状況===
簡潔な回答をしてくれたCharlie Martinに感謝しますが、残念ながら、それは私が始めたものです。しばらく前にそれを使用し、オフィスで使用するためにリリースしましたが、数時間以内に最も重大な欠点が指摘されました。警告なしでコンパイルに合格しますが、エラーのみです。コンパイラが動作しないことが確実なオブジェクト コードを提供することになるため、これは非常に悪いことです。単純なソリューションは、リストされている他の要件も満たしていません。
Adam Rosenfieldの略記と、pipefailをソリューションに導入してくれたChris Doddに感謝します。Chris の答えは最も近いように見えます。パイプフェイルは、コンパイルが実際にエラーで失敗した場合に、必要に応じて失敗することを保証する必要があると思うからです。クリス、pipefail はすべてのシェルで機能しますか? 上記の暗黙の要件の残りについて何か考えはありますか?
.net - 標準出力をキャプチャし、コンソール ウィンドウに表示する
表示されているコンソール ウィンドウ (MSBuild を実行するバッチ ファイル) で実行される子プロセスを生成しています。プロセスによって生成された出力を表示されているコンソール ウィンドウに表示し、その出力をキャプチャしたいと考えています。コードで処理できるようにします。他のいくつかの質問と ProcessStartInfo.RedirectStandardOutput などを扱う MSDN ドキュメントを読みましたが、リダイレクトされたストリームからの出力をキャプチャして、コードで問題なく処理できます。
問題は、出力が子プロセスのコンソール ウィンドウに表示されないことです。プロセスの実行中に画面に空白のコンソール ウィンドウが表示され、プロセスが終了すると消えます。
実際の子プロセス ウィンドウを非表示にして、2 つ目のウィンドウを表示して、キャプチャした出力を単純に書き込むことができると思いますが、それは必要以上の作業のように思えます。出力をコンソール ウィンドウに表示し、完了時に処理のためにキャプチャする方法はありますか?
background - CTRL + Zを壊して実行した後、プロセスをバックグラウンドにするにはどうすればよいですか?
Ctrl + Zなどの一部のキーが機能しなくなったため、この質問は特別です。
次の順序で入力して、プロセスをバックグラウンドにしようとしました。
- 探す /
- CTRL + Z
- bg
しかし、私はまだstdoutを見ることができます。最初のステップのみを実行することとの唯一の違いは、コマンドCTRL+Zが機能しなくなることです。保存されていないジョブがあり、ハードドライブが100GBを超えている場合は、かなり厄介です。それで
プロセスをバックグラウンドにするにはどうすればよいですか?
[詳細]
MacでBashの4番目のバージョンを使用しています。
[ニコラス・ライリーによる核心の返事]
問題は、実行中のプロセスのバックグラウンドの「影響」を理解していないことです。CTRL+Zなどのコマンドがバックグラウンドプロセスで機能しない理由がわかりません。次のコマンドを使用して、別のシェルでプロセスを強制終了することができました。