![O que significa um erro `saída não é um tty`?](https://rvso.com/image/1476433/O%20que%20significa%20um%20erro%20%60sa%C3%ADda%20n%C3%A3o%20%C3%A9%20um%20tty%60%3F.png)
Tentei gravar a saída do comando php -i
em um arquivo usando php -i > info
e recebi o seguinte erro:
output is not a tty
O que isso significa?
Estou usando git bash
no Windows.
Responder1
Encontrei um tópico semelhante como este. Uma solução que funcionou para mim:
Escrever
php.exe -i > info
em vez de
php -i > info
Então, basta anexar a .exe
extensão aos seus comandos e ela funciona.
Encontrei esta solução aqui:https://stackoverflow.com/a/44727575/2377961
Responder2
Se acontecer de você estar usando o winpty nos bastidores, você terá que passar o -Xallow-non-tty
argumento 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
No entanto, se a saída for mutilada, o -Xplain
argumento também será necessário:
$ winpty -Xallow-non-tty python -c 'print("hello")' | xxd
00000000: 1b5b 306d 1b5b 304b 6865 6c6c 6f1b 5b30 .[0m.[0Khello.[0
00000010: 4b1b 5b3f 3235 6c0d 0a1b 5b30 4b1b 5b3f K.[?25l...[0K.[?
00000020: 3235 68 25h
$ winpty -Xallow-non-tty -Xplain python -c 'print("hello")' | xxd
00000000: 6865 6c6c 6f0d 0a hello..
Responder3
O que funcionou para mim, com base nos comentários de Peh em stackoverflow.com/questions/33622087
Se você usar C:\Program Files\Git\bin\bash.exe em vez de C:\Program Files\Git\git-bash.exe então o comando funciona bem
Responder4
Você está redirecionando a saída do seu terminal (tty) para um arquivo. Portanto, sua saída não é mais um tty.
A mensagem faz todo o sentido. No entanto, isso não deve ser um erro.
Não consigo reproduzir esse comportamento em um sistema Linux.