著作一覧 |
何気なく、2つの引数を取るコマンドabcdeを実行するのに
$ abcde 1 2>/var/tmp/abcde.out
とか書いたら、すぐ実行が終わる。
そんなはずないのだが、と/var/tmp/abcde.outの中を見たら、usageが出力されていた。
もっとも
$ abcde 1 a>/var/tmp/abcde.out
なら問題ない。
ということは、1と2だけが特別扱いなのかなと
$ abcde 1 3>/var/tmp/abcde.out
とやってもやはり3はシェルに食われてしまう。こういう場合、3ってどうやれば使えるんだろう?
$ ruby -e '$stderr.puts("arg error")' 3>out
arg error
そりゃ、3はstderrじゃないし。
追記:File.new(3, 'w').puts 'hello!'
ジェズイットを見習え |
3とかの使い方は以下あたりを参照されると良いかも知れません。<br>http://x68000.q-e-d.net/~68user/unix/pickup?%A5%EA%A5%C0%A5%A4%A5%EC%A5%AF%A5%C8
なるほど。% command 3>&1 1>&2 2>&3 とか、出力先の一時保持用に利用したりするわけですね。勉強になりました。