My Photo

« selector属性(cookie/header/name/parameter)が指定されていません | Main | こんにゃくゼリーは悪くないと思うよ »

October 02, 2008

シェルで出力をリダイレクトするときに間違えそうなこと

$ ls ngrep*
ngrep
$
$ ls ngrep > ls.log 2>&1
$
$ cat ls.log
ngrep
$ rm ls.log
$
$ ls ngrepp > ls.log 2>&1
$
$ cat ls.log
ngrepp: ファイルもディレクトリもありません。
$ rm ls.log
$
$ ls ngrepp 2>&1 > ls.log
ngrepp: ファイルもディレクトリもありません。
$
$ cat ls.log
$ rm ls.log
$


標準出力と標準エラー出力を同じファイルにリダイレクトするとき、「2>&1」の後に「> ファイル名」と書いてしまいそうだが、「> ファイル名」、「2>&1」の順が正しい。
前者だと、標準エラー出力の出力先を標準入力の出力先、多くの場合はコンソールにして、それから標準出力の出力先をファイルに変えることになる。つまり、標準エラー出力はコンソールに行ってしまいファイルに行かない。
後者なら、標準出力の出力先をファイルにして、標準エラー出力の出力先を標準出力の出力先に変える。つまり標準出力・標準エラー出力ともにファイルに行く。


直感的に「2つの出力をまとめて、ファイルに向ける」みたいな感じで前者のように書いてしまいそうだが、実は間違っているので注意。

« selector属性(cookie/header/name/parameter)が指定されていません | Main | こんにゃくゼリーは悪くないと思うよ »

プログラミング、技術情報」カテゴリの記事

Comments

The comments to this entry are closed.

TrackBack


Listed below are links to weblogs that reference シェルで出力をリダイレクトするときに間違えそうなこと:

« selector属性(cookie/header/name/parameter)が指定されていません | Main | こんにゃくゼリーは悪くないと思うよ »

June 2021
Sun Mon Tue Wed Thu Fri Sat
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30      
無料ブログはココログ

日本blog村

  • にほんブログ村 IT技術ブログへ
  • にほんブログ村 アニメブログへ
  • にほんブログ村 サッカーブログ アルビレックス新潟へ

好きな音楽家

メモ

XI-Prof