!Bashのリダイレクトとかパイプとか tiwtterでつぶやいたら,いろいろな人に教えていただきました. * miyox: bashってstderrを|&でだせないのか... * toyoshim: @miyox 2>&1 じゃなかったっけ? bash使いじゃないので怪しいけど * tgbt:@miyox 2>&1 | でしたっけ? * miyox: @tgbt おおー、なるほど。ありがとうございます♪ * miyox: 2>&1 でstderrをstdoutと同じディスクリプタに書くのか。でも、2>&1 > hogeとかやってもhogeにはstdoutだけが書き出されるのね。&>と同じ挙動になるのかと思ったのにー。 * shinji_kono: @miyox 順序が逆でないと、期待した通りにならないはずです。 * y-Aki: @miyox 順序が重要なはず * miyox: @y_aki @shiji_kono 順序ですか。うーん、./a.out 2>&1 > fefe.2.1と./a.out 1>&2 > fefe.1.2でも元のstdoutだけがファイルに書かれます。勿論./a.out &> fefeだとstdoutもstderrも書かれますが。 * miyox: 順序ってこういうことか...わかったような。わからないような。 http://www.fireproject.jp/feature/bash/basic/redirect-pipe.html#3 * untamedcat: @miyox あやふやな情報なのでアレですが、bashの場合は右から順番に解釈されて有効になっていく、と何処かで教わった気が。 * miyox: @untamedcat ああー、そうなんですねー。なるほどです。 * y_aki: @miyox ./a.out > foo 2>&1 でfooにstdoutとstderrが入る >foo でハンドル1(stdout)のリダイレクトで、2>&1で ハンドル2(stderr)をハンドル1に繋げるってことです