J'ai essayé d'écrire le résultat de la commande php -i
dans un fichier à l'aide de php -i > info
et j'ai reçu l'erreur suivante:
output is not a tty
Qu'est-ce que ça veut dire?
J'utilise git bash
sous Windows.
Ce qui a fonctionné pour moi, basé sur les commentaires de Peh à stackoverflow.com/questions/33622087
Si vous utilisez C:\Program Files\Git\bin\bash.exe à la place de C:\Program Files\Git\git-bash.exe, la commande fonctionne correctement.
Si vous utilisez Winpty sous le capot, vous devez passer l'argument -Xallow-non-tty
pour résoudre ceci:
$ winpty python -c 'print("hello")' | grep h
stdout is not a tty
$ winpty -Xallow-non-tty python -c 'print("hello")' | grep h
hello
J'ai trouvé un sujet similaire comme celui-ci. Une solution qui a fonctionné pour moi:
Écrire
php.exe -i > info
au lieu de
php -i > info
Donc, vous devez ajouter l’extension .exe
à vos commandes et cela fonctionne.
Vous avez trouvé cette solution ici: https://stackoverflow.com/a/44727575/2377961
Je pense que ce problème concerne davantage la façon dont Git Bash gère la tuyauterie, et moins l'utilisation de PHP, car j'ai rencontré le même symptôme lors de l'utilisation de Python sous Windows. La réponse actuellement la plus votée ne fonctionne pas pour moi. Cela fonctionnera peut-être quelques mois plus tard, en se basant sur ce commentaire et un commentaire . Mais comme je suis impatiente, j'ai choisi d'utiliser l'invite de commande Windows native et, voila, ça marche!
NE FONCTIONNE PAS à Git Bash
rayluo@DESKTOP-10B0N4G MINGW64 ~
$ python -c "print('hello world')" > test.txt
stdout is not a tty
TRAVAUX dans l'invite de commande
(env27) C:\Users\rayluo>python -c "print('hello world')" > test.txt
(env27) C:\Users\rayluo>type test.txt
hello world
Vous êtes en train de rediriger la sortie de votre terminal (tty) vers un fichier. Par conséquent, votre production n’est plus un tty.
Le message est parfaitement logique. Cependant, cela ne devrait pas être une erreur.
Je ne peux pas reproduire ce comportement sur un système Linux.