解説 tee コマンドを使うとできる。 肝は tee が input されたデータを、 標準出力 リダイレクト先 これらに output することができるので、リダイレクト先をプロセス置換1を使ってパイプに渡したいコマンドを指定することで標準出力に出しつつ、特定のコマンドにパイプすることができる。 実際のデモ:
![標準出力に出しつつ、パイプ先のコマンドにも繋ぐ - tellme.tokyo](https://cdn-ak-scissors.b.st-hatena.com/image/square/9f2c4eee07a704e5c03f69e3f5c97e0b983e499e/height=288;version=1;width=512/https%3A%2F%2Fraw.githubusercontent.com%2Fb4b4r07%2Ftellme.tokyo%2Fmaster%2Fstatic%2Fimages%2Fprofile.jpg)
command1 > out1 command2 > out2 diff out1 out2 rm -f out1 out2 これは Process Substitution という名前の機能です。 ちなみに echo <(command) すると /dev/fd/63 などと表示されます。 これは一時的に作られたファイルディスクリプタの名前で、そのファイルディスクリプタは実行されたcommandの標準出力に繋がっており、他のプログラムからはファイルと同じように扱うことが出来る、というわけです。 とっても便利なので、覚えといて損はないです。 Register as a new user and use Qiita more conveniently You get articles that match your needsYou can efficiently read back use
#include <stdio.h> int main(int argc, char *argv[]) { fprintf(stdout, "1\n"); fprintf(stderr, "2\n"); return 0; } ./a # 1 2 と表示される (実態は 2 は標準エラー出力) ./a > b.txt # 2 と表示され 1 は b.txt へ ./a >& b.txt # 2 1 と b.txt へ出力される ./a 2>&1 > b.txt # 2 と表示され 1 は b.txt へ (実態は 2 は標準出力) ./a | less # less で 1 が見られ 2 は標準エラー出力で見られる ./a |& less # less で 2 1 が見られる ./a >& /dev/null | less # less で 1 が見られる (2 は捨てられる) ※これが理
連載目次 「TIPS:コマンド・プロンプトを表示せずにコンソール・アプリケーションを実行するには?」では、Windowsアプリケーションなどから外部のコンソール・アプリケーションを実行する場合に、コマンド・プロンプトを表示させずに実行する方法について解説しているが、この際、実行する外部アプリケーションによっては、その画面出力がプログラムで必要になることがある。 本稿ではプログラムからコンソール・アプリケーションを実行し、その出力を取得する方法について解説する。 標準出力とそのリダイレクト 本題に入る前に、コンソール・アプリケーションの出力について簡単に説明しておこう。 たいていのコンソール・アプリケーションは実行結果などを画面(通常はコマンド・プロンプト)に表示するが、これはコンソール・アプリケーションが画面に描画を行っているわけではない。コンソール・アプリケーションは文字を「標準出力」に
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く