Komutun çıktısını php -i
kullanarak bir dosyaya yazmaya çalıştım php -i > info
ve aşağıdaki hatayı aldım :
output is not a tty
Bu ne demek?
git bash
Windows'da kullanıyorum .
Komutun çıktısını php -i
kullanarak bir dosyaya yazmaya çalıştım php -i > info
ve aşağıdaki hatayı aldım :
output is not a tty
Bu ne demek?
git bash
Windows'da kullanıyorum .
Yanıtlar:
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
Benzer bir konu buldum. Benim için çalışan bir çözüm:
Yazmak
php.exe -i > info
onun yerine
php -i > info
Yani .exe
uzantıları komutlarınıza ekleyin ve çalışır.
Bu çözümü burada buldum : /programming//a/44727575/2377961
Kaputun altında winpty kullanıyorsanız, bunu -Xallow-non-tty
dü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
node
aracılığıyla conemu
.
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
Çı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.