LoginSignup
8
0

More than 3 years have passed since last update.

GitBashの"stdout is not a tty"で怒られないように

Last updated at Posted at 2020-09-20

はじめに

1年ぐらい悩んでいましたが、たった今、対策が見つかりましたのでご報告します。

現象

GitBashでリダイレクトやパイプを使った時に、こんなメッセージが出てうまくいきません。

$ python bin/regression.py > out.txt
stdout is not a tty

毎回これが出る度に回避策を考える日々。

回避策(例)

  • less が使えず、流れるメッセージを見つめ、見たいところでCtrl-Cで強制終了。その後スクロールバーをつかって見たいところを調整。
  • リダイレクトできないため、プログラムでファイルに出力するコードを書く。もしくはDOSコマンドプロンプトを起動し、実行する。

Git Bashのttyで怒られないように も試したんですがうまくいかないんですよ。

対応

(A) 本腰入れて調べてみました。するとこんな話を見つけました(参考文献参照)

コマンドに拡張子をつける

(自分) それだけ? うそやろ。根拠ねーじゃん。

(A) いい? じゃぁ、やってみるよ。(コマンドを実行)

$ python.exe bin/regression.py > out.txt

(自分) え、うそっ、動いてる。まじかよ。パイプはどうなってるっーーーー!!!?

(A) (コマンドを実行)

$ python.exe bin/regression.py | less

(自分) げ、出た。スペースで次のページ行けるよぉ。すげー。

(自分) 根拠?どーでもいいじゃん。動きゃいいんだよ!

参考

8
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
0