windows – `output is not tty` エラーは何を意味するのか?

git-bash php windows

php -iのコマンドの出力をphp -i > infoを使ってaファイルに書き込もうとしたところ、以下のようなエラーが出ました

output is not a tty

それはどういう意味なのでしょうか?

Windowsでgit bashを使っています

  41  Max Koretskyi  2015-12-10


ベストアンサー

似たようなトピックを見つけました。私のために働いた1つの解決策

Write

php.exe -i > info

instead of

php -i > info

そのため、コマンドに.exe拡張子を追加すれば動作します

この解決策はここにありました。https://stackoverflow.com/a/44727575/2377961

34  Radon8472  2018-08-21


何が私のために働いたか、stackoverflow.com/questions/33622087へのPehさんのコメントに基づいて

22  targnation  2016-12-21


たまたま winpty をアンダーグラウンドで使用している場合は、-Xallow-non-tty 引数を渡して修正しなければなりません

$ winpty python -c 'print("hello")' | grep h
stdout is not a tty

$ winpty -Xallow-non-tty python -c 'print("hello")' | grep h
hello

ただし、出力がマンネリ化している場合は、-Xplainの引数も必要になります

$ winpty -Xallow-non-tty python -c 'print("hello")' | xxd
00000000: 1b5b 306d 1b5b 304b 6865 6c6c 6f1b 5b30  .[0m.[0Khello.[0
00000010: 4b1b 5b3f 3235 6c0d 0a1b 5b30 4b1b 5b3f  K.[?25l...[0K.[?
00000020: 3235 68                                  25h

$ winpty -Xallow-non-tty -Xplain python -c 'print("hello")' | xxd
00000000: 6865 6c6c 6f0d 0a                        hello..

20  Chiel ten Brinke  2018-05-13


私は、この問題はGit Bashがどのようにパイピングを扱うかに関係しているのであって、PHPに関係しているのではないと考えています。現在最も投票されている回答は、私のためには動作しません。このコメントフォローアップコメントに基づいて、数ヶ月後には動くかもしれません。しかし、私はせっかちなので、ネイティブのWindowsコマンドプロンプトを使うことにしました

Git Bashでは動作しません

rayluo@DESKTOP-10B0N4G MINGW64 ~
$ python -c "print('hello world')" > test.txt
stdout is not a tty

コマンドプロンプトでWORKSを表示します

(env27) C:\Users\rayluo>python -c "print('hello world')" > test.txt
(env27) C:\Users\rayluo>type test.txt
hello world

3  RayLuo  2017-08-04


ターミナル(tty)からの出力をファイルにリダイレクトしています。したがって、あなたの出力はもはや tty ではありません

メッセージは完全に意味を成しています。しかし、これはエラーではないはずです

Linuxシステムでこの動作を再現することができません

1  michas  2015-12-10


タイトルとURLをコピーしました