Я попытался записать вывод команды php -i
в файл с помощью php -i > info
и получил следующую ошибку:
output is not a tty
Что это означает?
Я использую git bash
на Windows.
Я попытался записать вывод команды php -i
в файл с помощью php -i > info
и получил следующую ошибку:
output is not a tty
Что это означает?
Я использую git bash
на Windows.
Ответы:
Что сработало для меня, основываясь на комментариях Пэ к stackoverflow.com/questions/33622087
Если вы используете C: \ Program Files \ Git \ bin \ bash.exe вместо C: \ Program Files \ Git \ git-bash.exe, то команда работает нормально.
Я нашел похожую тему, как это. Одно решение, которое сработало для меня:
Написать
php.exe -i > info
вместо того
php -i > info
Так что просто добавьте .exe
расширение к вашим командам, и оно работает.
Нашел это решение здесь: /programming//a/44727575/2377961
Если вы используете winpty под капотом, вы должны передать -Xallow-non-tty
аргумент, чтобы это исправить:
$ winpty python -c 'print("hello")' | grep h
stdout is not a tty
$ winpty -Xallow-non-tty python -c 'print("hello")' | grep h
hello
node
через conemu
.
Я считаю, что эта проблема больше связана с тем, как Git Bash обрабатывает трубопроводы, а не с PHP, потому что я столкнулся с тем же симптомом при использовании Python в Windows. В настоящее время наиболее голосовали ответ не работает для меня. Это может сработать через несколько месяцев, основываясь на этом комментарии и последующем комментарии . Но я нетерпелив, поэтому я решил использовать встроенную командную строку Windows и, вуаля, она работает!
НЕ РАБОТАЕТ в Git Bash
rayluo@DESKTOP-10B0N4G MINGW64 ~
$ python -c "print('hello world')" > test.txt
stdout is not a tty
РАБОТАЕТ в командной строке
(env27) C:\Users\rayluo>python -c "print('hello world')" > test.txt
(env27) C:\Users\rayluo>type test.txt
hello world
Вы перенаправляете свой вывод из вашего терминала (tty) в файл. Поэтому ваш вывод больше не tty.
Сообщение имеет смысл. Однако это не должно быть ошибкой.
Я не могу воспроизвести это поведение в системе Linux.