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?
git bash on Windows.
Super User is a question and answer site for computer enthusiasts and power users. It only takes a minute to sign up.Sign up to join this community
I found an similar topic like this. One Solution which worked for me:
php.exe -i > info
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..
I believe this issue is more about how Git Bash handles piping, and less about PHP, because I encountered the same symptom using Python on Windows. The currently most-voted answer does not work for me. It might work a few months later, based on this comment and a follow-up comment. But I'm impatient so I choose to use the native Windows Command Prompt and, voila, it works!
DOESN'T WORK in Git Bash
rayluo@DESKTOP-10B0N4G MINGW64 ~ $ python -c "print('hello world')" > test.txt stdout is not a tty
WORKS in Command Prompt
(env27) C:\Users\rayluo>python -c "print('hello world')" > test.txt (env27) C:\Users\rayluo>type test.txt hello world