概要

楽しい 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

オッケー!