What does an `output is not a tty` error mean?
I tried to write the output of the command php -i
to the a file using php -i > info
and received the following error:
output is not a tty
What does it mean?
I'm using git bash
on Windows.
I found an similar topic like this. One Solution which worked for me:
Write
php.exe -i > info
instead of
php -i > info
So yust append the .exe
extension to your commands and it works.
Found this solution here: https://stackoverflow.com/a/44727575/2377961
If you happen to be using winpty under the hood, you have to pass the -Xallow-non-tty
argument to fix this:
$ winpty python -c 'print("hello")' | grep h
stdout is not a tty
$ winpty -Xallow-non-tty python -c 'print("hello")' | grep h
hello
However, if the output is mangled, the -Xplain
argument will also be required:
$ 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..
What worked for me, based on Peh's comments to 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