"Çıktı tty" hatası ne anlama gelir?


32

Komutun çıktısını php -ikullanarak bir dosyaya yazmaya çalıştım php -i > infove aşağıdaki hatayı aldım :

output is not a tty

Bu ne demek?

git bashWindows'da kullanıyorum .


Hmm .. Komutu çalıştırdığınız dizinde zaten "info" adında bir dosya veya dizin var mı?

hayır, ama komutu çalıştırdıktan sonra oluşturulur, sadece boş ve hata çıktı
Maxim Koretskyi

Lütfen bir "strace php -i> info" deneyin ve çıktıyı buraya yazın ..

Hangi php sürümünü kullanıyorsunuz? Komut bilgi dosyasını doğru bir şekilde oluşturdu mu?
michas

1
Şu anda bunun için bir cevap yazmak için zamanım yok, ancak herhangi bir cevaplayıcı code.google.com/p/mintty/issues/detail?id=56 , homepage.ntlworld.com'un beğenilerini almak istiyorsa ./jonathan.deboynepollard/FGA/… , github.com/git-for-windows/git/issues/399 , github.com/rprichard/winpty ve github.com/docker/toolbox/issues/231 el ile çalıştırın onlarla, lütfen çekinmeyin.
JdeBP

Yanıtlar:


19

Peh'in stackoverflow.com/questions/33622087 ile ilgili yorumlarına dayanarak benim için ne işe yaradı?

C: \ Program Files \ Git \ git-bash.exe yerine C: \ Program Files \ Git \ bin \ bash.exe kullanırsanız, komut düzgün çalışır


3
Bu benim için işe yaramadı. Aynı hatayı alıyorum.
Ryan

1
Ama bugün benim için çalıştı! Birkaç ay önce neden işe yaramadığını bilmiyorum. +1
Ryan

1
git bash içinde sadece bash yazın
Rivenfall


12

Kaputun altında winpty kullanıyorsanız, bunu -Xallow-non-ttydüzeltmek için argümanı geçmelisiniz :

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

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

1
Kullanırken benim için sorun çözüldü nodearacılığıyla conemu.
jakub.g

Çok teşekkür ederim ... Bu benim için çalıştı.
HassanSh__3571619

2

Bu sorunun Git Bash'in boruları nasıl işlediğine ve PHP hakkında daha az olduğuna inanıyorum, çünkü Windows'da Python kullanarak aynı semptomla karşılaştım. Şu anda en çok oy alan cevap benim için çalışmıyor. Bu yoruma ve bir takip yorumuna dayanarak birkaç ay sonra işe yarayabilir . Ama sabırsızım, bu yüzden yerel Windows Komut İstemi'ni kullanmayı seçiyorum ve işe yarıyor!

Git Bash'te ÇALIŞMIYOR

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

Komut İsteminde ÇALIŞIR

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

1

Çıktınızı terminalinizden (tty) bir dosyaya yönlendiriyorsunuz. Bu nedenle çıktınız artık tty değildir.

Mesaj çok mantıklı. Ancak bu bir hata olmamalıdır.

Bir linux sisteminde bu davranışı yeniden oluşturamıyorum.


Üzgünüm, yanlış yere yorum yaptım. lütfen "strace php -i" komutunu çalıştırın ve çıktıyı yapıştırın (ilk önce son birkaç satır).
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.