‘출력이 tty’가 아니라는 것은 무엇을 의미합니까?

명령 php -i을 사용하여 파일에 파일 을 쓰려고 시도 php -i > info하고 다음 오류가 발생했습니다.

output is not a tty

무슨 뜻인가요?

git bashWindows에서 사용 하고 있습니다.



답변

stackoverflow.com/questions/33622087에 대한 Peh의 의견을 바탕으로 저에게 효과가 있었던 것은

C : \ Program Files \ Git \ git-bash.exe 대신 C : \ Program Files \ Git \ bin \ bash.exe를 사용하면 명령이 제대로 작동합니다.


답변

나는 이와 비슷한 주제를 발견했다. 나를 위해 일한 하나의 솔루션 :

쓰다

php.exe -i > info

대신에

php -i > info

따라서 yust는 .exe확장명을 명령에 추가하면 작동합니다.

이 솔루션을 여기에서 찾았습니다 : /programming//a/44727575/2377961


답변

후드 아래에서 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


답변

나는이 문제가 Git Bash가 파이핑을 처리하는 방법에 관한 것이 아니라 PHP에 대해서는 덜 믿습니다 .Windows에서 Python을 사용하는 것과 동일한 증상이 발생했기 때문입니다. 현재 가장 투표 대답은 나를 위해 작동하지 않습니다. 이 의견후속 의견을 바탕으로 몇 달 후에 작동 할 수 있습니다 . 그러나 나는 참을성이 없어서 기본 Windows 명령 프롬프트를 사용하기로 선택했습니다.

Git Bash에서 작동하지 않습니다

rayluo@DESKTOP-10B0N4G MINGW64 ~
$ python -c "print('hello world')" > test.txt
stdout is not a tty

명령 프롬프트에서 작동

(env27) C:\Users\rayluo>python -c "print('hello world')" > test.txt
(env27) C:\Users\rayluo>type test.txt
hello world


답변

터미널 (tty)의 출력을 파일로 리디렉션합니다. 따라서 출력은 더 이상 tty가 아닙니다.

메시지는 완벽하게 이해됩니다. 그러나 이것은 오류가 아니어야합니다.

Linux 시스템에서이 동작을 재현 할 수 없습니다.


답변