Próbowałem zapisać dane wyjściowe polecenia php -i
w pliku za pomocą php -i > info
i otrzymałem następujący błąd:
output is not a tty
Co to znaczy?
Używam git bash
w systemie Windows.
Próbowałem zapisać dane wyjściowe polecenia php -i
w pliku za pomocą php -i > info
i otrzymałem następujący błąd:
output is not a tty
Co to znaczy?
Używam git bash
w systemie Windows.
Odpowiedzi:
Co dla mnie zadziałało, na podstawie komentarzy Peha do stackoverflow.com/questions/33622087
Jeśli użyjesz C: \ Program Files \ Git \ bin \ bash.exe zamiast C: \ Program Files \ Git \ git-bash.exe, to polecenie działa dobrze
Znalazłem podobny temat jak ten. Jedno rozwiązanie, które działało dla mnie:
pisać
php.exe -i > info
zamiast
php -i > info
Więc dodaj .exe
rozszerzenie do swoich poleceń i działa.
Znaleziono to rozwiązanie tutaj: /programming//a/44727575/2377961
Jeśli używasz winpty pod maską, musisz przekazać -Xallow-non-tty
argument, aby to naprawić:
$ winpty python -c 'print("hello")' | grep h
stdout is not a tty
$ winpty -Xallow-non-tty python -c 'print("hello")' | grep h
hello
node
z conemu
.
Wierzę, że ten problem dotyczy bardziej tego, jak Git Bash obsługuje piping, a mniej PHP, ponieważ napotkałem ten sam symptom przy użyciu Pythona w systemie Windows. Obecnie najbardziej głosowało odpowiedź nie działa dla mnie. Może to działać kilka miesięcy później, w oparciu o ten komentarz i komentarz uzupełniający . Ale jestem niecierpliwy, więc wybrałem natywny wiersz polecenia systemu Windows i, voila, działa!
NIE DZIAŁA w Git Bash
rayluo@DESKTOP-10B0N4G MINGW64 ~
$ python -c "print('hello world')" > test.txt
stdout is not a tty
DZIAŁA w wierszu polecenia
(env27) C:\Users\rayluo>python -c "print('hello world')" > test.txt
(env27) C:\Users\rayluo>type test.txt
hello world
Przekierowujesz dane wyjściowe z terminala (tty) do pliku. Dlatego twój wynik nie jest już tty.
Wiadomość ma doskonały sens. Jednak nie powinien to być błąd.
Nie mogę odtworzyć tego zachowania w systemie Linux.