!['출력이 tty가 아닙니다' 오류는 무엇을 의미하나요?](https://rvso.com/image/1476433/'%EC%B6%9C%EB%A0%A5%EC%9D%B4%20tty%EA%B0%80%20%EC%95%84%EB%8B%99%EB%8B%88%EB%8B%A4'%20%EC%98%A4%EB%A5%98%EB%8A%94%20%EB%AC%B4%EC%97%87%EC%9D%84%20%EC%9D%98%EB%AF%B8%ED%95%98%EB%82%98%EC%9A%94%3F.png)
php -i
다음을 사용하여 명령의 출력을 파일에 쓰려고 했는데 php -i > info
다음 오류가 발생했습니다.
output is not a tty
무슨 뜻이에요?
git bash
Windows에서 사용하고 있습니다 .
답변1
이와 비슷한 주제를 찾았습니다. 나에게 도움이 된 한 가지 솔루션:
쓰다
php.exe -i > info
대신에
php -i > info
따라서 .exe
명령에 확장명을 추가하면 작동합니다.
여기에서 이 솔루션을 찾았습니다.https://stackoverflow.com/a/44727575/2377961
답변2
내부적으로 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
그러나 출력이 손상되면 인수 -Xplain
도 필요합니다.
$ 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..
답변3
stackoverflow.com/questions/33622087에 대한 Peh의 의견을 바탕으로 나에게 도움이 된 것은 무엇입니까?
C:\Program Files\Git\git-bash.exe 대신 C:\Program Files\Git\bin\bash.exe를 사용하면 명령이 제대로 작동합니다.
답변4
터미널(tty)의 출력을 파일로 리디렉션하고 있습니다. 따라서 출력은 더 이상 tty가 아닙니다.
메시지는 완벽하게 이해됩니다. 그러나 이는 오류가 아니어야 합니다.
Linux 시스템에서는 이 동작을 재현할 수 없습니다.