/dev/null
に関してメモっとく。
/dev/null
って結局なんなん?
/dev/null
は空ファイルって意味なんやて。要するにゴミ箱って認識でいいと思うの。
結果を出力したくないとか捨てたいときに使う。
出力結果を捨てる
command > /dev/null
みたいに出力結果を捨てるときに/dev/null
を使う。>
はリダイレクト。
例えば、if文とかで出力結果は捨てたい時とかに使う。
PC0339% if which cd > /dev/null; then echo "hoge"; fi
hoge
PC0339% if which cd; then echo "hoge"; fi
cd: shell built-in command
hoge
PC0339%
1回目のコマンドはif文の結果のhoge
しか出力されていないが、2回目のコマンドはwhich
の結果も出力されている。
command > /dev/null 2>&1
について
よくcrontabで見かける記述だが、これは標準出力とエラー出力をどっちも捨てるという意味。コマンドをそれぞれ分解すると、
-
1
: 標準出力 -
2
: 標準エラー出力 -
>&
: マージ
つまり、2>&1
は標準エラー出力を標準出力にマージという意味。
よって、上記のコマンドの意味は、標準エラー出力を標準出力にマージしてから捨てるという意味になる。まどろっこしいぜ。