O que significa um erro de 'saída não é tty'?

16

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.

    
por Max Wizard K 10.12.2015 / 08:55

5 respostas

11

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

    
por 21.12.2016 / 17:05
4

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
    
por 13.05.2018 / 13:18
2

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
    
por 05.08.2017 / 00:33
1

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.

    
por 10.12.2015 / 09:45
1

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

    
por 21.08.2018 / 10:08