Cronで、標準出力も標準エラー出力も抑制する。よく利用する処理だと思うが、正しいのは以下のどちらか。
1. command > /dev/null 2>&1
2. command 2>&1 /dev/null
正解は、1の方。2の記述だと、標準出力は/dev/nullへ吐き出されるが、標準エラー出力が端末に向いてしまう、とのことだ。
参考
シェルのリダイレクトにまつわる失敗
恐ろしいことに、今までこの違いを分からずに使っていた。
そう言えば、「おかしいな、エラー出力抑止しているはずなのに」ということもあったな・・・。
そして今も詳しい理屈は覚えようとしない自分。