「出力はttyではありません」エラーとはどういう意味ですか?


32

コマンドの出力をphp -i使用してファイルに書き込もうphp -i > infoとしましたが、次のエラーを受け取りました。

output is not a tty

どういう意味ですか?

git bashWindowsで使用しています。


うーん。コマンドを実行しているディレクトリに、「info」というファイルまたはディレクトリがすでにありますか?

いいえ。ただし、コマンドを実行した後、作成されると空になり、エラーが出力されます
Maxim Koretskyi

「straceのPHP -i>情報」そしてここで、出力を投稿してみてください...

どのバージョンのphpを使用していますか?コマンドは情報ファイルを正しく作成しましたか?
michas

1
私はこのための答えを書くために、今の時間を持っていないが、任意の回答はの同類取りたい場合code.google.com/p/mintty/issues/detail?id=56homepage.ntlworld.comを./jonathan.deboynepollard/FGA/…、github.com / git -for-windows / git / issues / 399github.com / rprichard / winpty、およびgithub.com/docker/toolbox/issues/231を実行して実行する彼らと一緒に、お気軽にどうぞ。
JdeBP

回答:


19

stackoverflow.com/questions/33622087へのPehのコメントに基づいて、私にとってうまくいったこと

C:\ Program Files \ Git \ git-bash.exeの代わりにC:\ Program Files \ Git \ bin \ bash.exeを使用する場合、コマンドは正常に動作します


3
これはうまくいきませんでした。同じエラーが発生します。
ライアン

1
しかし、今日はうまくいきました!数か月前になぜ機能しなかったのかわかりません。+1
ライアン

1
git bash内にbashと入力するだけ
Rivenfall

18

このような類似のトピックを見つけました。私のために働いた1つのソリューション:

書きます

php.exe -i > info

の代わりに

php -i > info

したがって.exe、コマンドに拡張子を追加すれば機能します。

ここでこのソリューションを見つけました:https : //stackoverflow.com/a/44727575/2377961


12

ボンネットの下で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

1
nodethrough を使用する際の問題を解決しましたconemu
jakub.g

本当にありがとう...これは私のために働いた。
HassanSh__3571619

2

この問題は、Git Bashがパイピングを処理する方法に関するものであり、PHPに関するものではなく、WindowsでPythonを使用して同じ症状に遭遇したためだと思います。現在最も投票の答えは私のために動作しません。このコメントフォローアップコメントに基づいて、数か月後には機能する可能性があります。しかし、私はイライラしているので、ネイティブのWindowsコマンドプロンプトを使用することにしました。

Git Bashで機能しない

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

コマンドプロンプトでの動作

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

1

端末(tty)からの出力をファイルにリダイレクトしています。したがって、出力はttyではなくなります。

メッセージは完全に理にかなっています。ただし、これはエラーではありません。

Linuxシステムでこの動作を再現できません。


申し訳ありませんが、間違った場所についてコメントしました。「strace php -i」を実行して、出力を貼り付けてください(最初の最後の数行)。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.