O que funcionou para mim, com base nos comentários de Peh para stackoverflow.com/questions/33622087
If you use C:\Program Files\Git\bin\bash.exe instead of C:\Program Files\Git\git-bash.exe then the command works fine
Eu tentei gravar a saída do comando php -i
no arquivo a usando php -i > info
e recebi o seguinte erro:
output is not a tty
O que isso significa?
Estou usando git bash
no Windows.
O que funcionou para mim, com base nos comentários de Peh para stackoverflow.com/questions/33622087
If you use C:\Program Files\Git\bin\bash.exe instead of C:\Program Files\Git\git-bash.exe then the command works fine
Se você estiver usando winpty under the hood, você tem que passar o argumento -Xallow-non-tty
para corrigir isso:
$ winpty python -c 'print("hello")' | grep h
stdout is not a tty
$ winpty -Xallow-non-tty python -c 'print("hello")' | grep h
hello
Eu acredito que esse problema é mais sobre como o Git Bash lida com o piping, e menos sobre o PHP, porque eu encontrei o mesmo sintoma usando o Python no Windows. A resposta atualmente mais votada não funciona para mim. Pode funcionar alguns meses depois, com base no comentário e comentário de acompanhamento . Mas eu sou impaciente, então escolho usar o prompt de comando nativo do Windows e, voila, funciona!
NÃO FUNCIONA no Git Bash
rayluo@DESKTOP-10B0N4G MINGW64 ~
$ python -c "print('hello world')" > test.txt
stdout is not a tty
FUNCIONA no Prompt de Comando
(env27) C:\Users\rayluo>python -c "print('hello world')" > test.txt
(env27) C:\Users\rayluo>type test.txt
hello world
Você está redirecionando a saída do seu terminal (tty) para um arquivo. Portanto, sua saída não é mais uma tty.
A mensagem faz todo o sentido. No entanto, isso não deve ser um erro.
Eu não consigo reproduzir esse comportamento em um sistema Linux.
Eu encontrei um tópico semelhante como este. Uma solução que funcionou para mim:
Escreva
php.exe -i > info
em vez de
php -i > info
Então, adicione a extensão .exe
aos seus comandos e ela funciona.
Encontrou esta solução aqui: link