Windows Git Bash stdout is not a tty
Par PlaceOweb le jeudi, septembre 26 2019, 20:15 - Système - Lien permanent
$ php -v > /d/output.txt stdout is not a tty
Pour corriger le problème "stdout is not a tty", il existe plusieurs possibilités.
Problème : git bash windows : stdout is not a tty
Fonctionne très bien en créant le fichier output.txt avec le contenu "OK" :
$ echo "OK" > /d/output.txt
Ne fonctionne pas résultant d'un fichier vide, et du stderr "stdout is not a tty" :
$ php -v > /d/output.txt stdout is not a tty
Alors qu'en utilisant le nom complet du programme avec l'extension ".exe", cela fonctionne :
$ php.exe -v > /d/output.txt
Alternative "lancer le bash"
ryzen@RYZEN MINGW64 ~ $ php -v > /d/output.txt stdout is not a tty ryzen@RYZEN MINGW64 ~ $ bash ryzen@RYZEN MINGW64 ~ $ php -v > /d/output.txt
Alternative "définir les alias pour chaque programme avec son .exe"
Vous pouvez ajouter l'alias (à chacun de vos programmes) :
printf "\nalias php='php.exe'" >> ~/.bashrc # et pour qu'il soit prise en compte immédiatement, inclure cette configuration : $ source .bashrc # et le problème "stdout is not a tty" disparait :)
Mais vous constaterez l'avertissement :
WARNING: Found ~/.bashrc but no ~/.bash_profile, ~/.bash_login or ~/.profile. This looks like an incorrect setup. A ~/.bash_profile that loads ~/.bashrc will be created for you.
Et le fichier créé :
$ cat ~/.bash_profile # generated by Git for Windows test -f ~/.profile && . ~/.profile test -f ~/.bashrc && . ~/.bashrc
Sous Windows, le variable d’environnement %pathext% qui liste des extensions des fichiers reconnus comme étant "exécutables".
C:\Users\ryzen>echo %PATHEXT% .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC