概要

楽しい Python のお時間です。いや、つーか今回は Linux コマンドの話です。
python -V がリダイレクトで捕まんねえ
フフフーン。フフーフーフーン。今日も鼻歌まじりに覚えたての Linux コマンドで遊ぶ緑さんである。
$ python -V > /tmp/foo
Python 2.7.18
フフfーハァッ?!
$ cat /tmp/foo
# 何も出ない
ハアアッ?! python -V がファイルに入っていかねェぞッッ?!
なんでかっちゅーと > というのは標準出力のリダイレクトで、 python -V は標準エラー出力だからですね。知らなかった……。今回は、これまで100回以上打ってきた python -V の新たな一面が見れてハシャいで、標準エラー出力をリダイレクトする話だ。
標準エラー出力をリダイレクトで捕まえる
- いつもやっている
>は1>の略だったみたい。 1は標準出力のこと。つまり1>は “標準出力をリダイレクト” の意味。2が標準エラー出力のこと。つまり2>は “標準エラー出力をリダイレクト” の意味になる。
# 標準出力をリダイレクト。
$ python -V 1> /tmp/foo
Python 2.7.18 # 捕まんねえ!
# 標準エラー出力をリダイレクト。
$ python -V 2> /tmp/foo
# 捕まえた!!
# どっちもリダイレクト (追記モード)。
$ python -V 1>> /tmp/foo 2>> /tmp/foo
# これ↑を短縮してみる。
$ python -V &>> /tmp/foo
オッケー!