Я спробував записати вихід команди 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) у файл. Тому ваш вихід вже не є десятки.
Повідомлення має ідеальний сенс. Однак це не повинно бути помилкою.
Я не можу відтворити цю поведінку в системі Linux.