![Was bedeutet der Fehler „Ausgabe ist kein TTY“?](https://rvso.com/image/1476433/Was%20bedeutet%20der%20Fehler%20%E2%80%9EAusgabe%20ist%20kein%20TTY%E2%80%9C%3F.png)
Ich habe versucht, die Ausgabe des Befehls php -i
in eine Datei zu schreiben php -i > info
und habe die folgende Fehlermeldung erhalten:
output is not a tty
Was bedeutet das?
Ich verwende es git bash
unter Windows.
Antwort1
Ich habe ein ähnliches Thema wie dieses gefunden. Eine Lösung, die bei mir funktioniert hat:
Schreiben
php.exe -i > info
anstatt
php -i > info
Fügen Sie Ihren Befehlen einfach die .exe
Erweiterung hinzu und es funktioniert.
Habe diese Lösung hier gefunden:https://stackoverflow.com/a/44727575/2377961
Antwort2
Wenn Sie zufällig Winpty im Hintergrund verwenden, müssen Sie das -Xallow-non-tty
Argument übergeben, um dies zu beheben:
$ winpty python -c 'print("hello")' | grep h
stdout is not a tty
$ winpty -Xallow-non-tty python -c 'print("hello")' | grep h
hello
Wenn die Ausgabe jedoch verstümmelt ist, -Xplain
wird auch das Argument benötigt:
$ 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..
Antwort3
Was bei mir funktioniert hat, basierend auf Pehs Kommentaren zu stackoverflow.com/questions/33622087
Wenn Sie C:\Program Files\Git\bin\bash.exe anstelle von C:\Program Files\Git\git-bash.exe verwenden, funktioniert der Befehl einwandfrei
Antwort4
Sie leiten die Ausgabe Ihres Terminals (tty) in eine Datei um. Ihre Ausgabe ist daher kein tty mehr.
Die Meldung ist absolut sinnvoll. Es sollte sich jedoch nicht um einen Fehler handeln.
Ich kann dieses Verhalten auf einem Linux-System nicht reproduzieren.