echo "error" 1>&2 が覚えられないあなたのための3つの処方箋
/dev/stderrに書き込む
たぶんこれが一番簡単です。"stderr"の綴りは覚えたりせず、タブ補完に任せちゃいましょう。
$ echo "error" > /dev/stderr
動作確認方法
$ ( echo "error" > /dev/stderr ) > a.txt
error
画面に "error" が表示され、a.txtが空になっていれば成功です。/dev/stderrは機種依存という話も聞きましたが、今どきのLinuxであればたぶん大丈夫でしょう。
(CentOS,Ubuntuでは動きました。)
Perlを使う
Perlを少しでも書いたことがあれば、warnはなじみが深いと思います。$ perl -e 'warn "error\n"'
動作確認方法
$ ( perl -e 'warn "error\n"' ) > a.txt
error
ただ、こんな用途のためだけに突然Perlが登場すると、保守する人が動揺するかもしれません。
1>&2に自力でたどり着く方法を覚える
まず、あえてこう書きます。$ echo "error" 1>2
すると、"2"という名前のテキストファイルが作られてしまいます。
$ cat 2
error
「あ、そりゃそうか」と納得します。次に 文末に&を書きます。
$ echo "error" 1>2&
[1] 13699
$
[1] + done echo "error" > 2
バックグラウンドジョブで"2"という名前のテキストファイルが作られてしまいます。$ cat 2
error
「あ、そりゃそうか」と納得します。次に、&の位置を一個ずらします。
$ echo "error" 1>&2
error
「お、これでいけるんじゃね?」という気がしてきます。動作確認します。
% ( echo "error" 1>&2 ) > a.txt
error
a.txtが空であれば、成功です!これで、あいまいな記憶力に頼ることなく、Google検索せずに、正しくエラーメッセージを吐けますね!
Enjoy!