Tôi đã cố gắng viết đầu ra của lệnh php -i
vào một tệp bằng cách sử dụng php -i > info
và nhận được lỗi sau:
output is not a tty
Nó có nghĩa là gì?
Tôi đang sử dụng git bash
trên Windows.
Tôi đã cố gắng viết đầu ra của lệnh php -i
vào một tệp bằng cách sử dụng php -i > info
và nhận được lỗi sau:
output is not a tty
Nó có nghĩa là gì?
Tôi đang sử dụng git bash
trên Windows.
Câu trả lời:
Điều gì làm việc cho tôi, dựa trên nhận xét của Peh cho stackoverflow.com/questions/33622087
Nếu bạn sử dụng C: \ Program Files \ Git \ bin \ bash.exe thay vì C: \ Program Files \ Git \ git-bash.exe thì lệnh hoạt động tốt
Tôi tìm thấy một chủ đề tương tự như thế này. Một giải pháp hiệu quả với tôi:
Viết
php.exe -i > info
thay vì
php -i > info
Vì vậy, yust nối thêm .exe
phần mở rộng cho các lệnh của bạn và nó hoạt động.
Tìm thấy giải pháp này tại đây: /programming//a/44727575/2377961
Nếu bạn tình cờ sử dụng winpty dưới mui xe, bạn phải vượt qua -Xallow-non-tty
đối số để khắc phục điều này:
$ winpty python -c 'print("hello")' | grep h
stdout is not a tty
$ winpty -Xallow-non-tty python -c 'print("hello")' | grep h
hello
node
thông qua conemu
.
Tôi tin rằng vấn đề này liên quan nhiều hơn đến cách Git Bash xử lý đường ống và ít hơn về PHP, vì tôi gặp phải triệu chứng tương tự khi sử dụng Python trên Windows. Các câu trả lời hiện nhiều nhất bình chọn không làm việc cho tôi. Nó có thể hoạt động một vài tháng sau đó, dựa trên nhận xét này và nhận xét tiếp theo . Nhưng tôi không kiên nhẫn nên tôi chọn sử dụng Windows Command Prompt và, voila, nó hoạt động!
KHÔNG LÀM VIỆC trong Git Bash
rayluo@DESKTOP-10B0N4G MINGW64 ~
$ python -c "print('hello world')" > test.txt
stdout is not a tty
CÔNG TRÌNH trong Dấu nhắc Lệnh
(env27) C:\Users\rayluo>python -c "print('hello world')" > test.txt
(env27) C:\Users\rayluo>type test.txt
hello world
Bạn đang chuyển hướng đầu ra của bạn từ thiết bị đầu cuối của bạn (tty) đến một tệp. Do đó, đầu ra của bạn không còn là một tty.
Thông điệp làm cho ý nghĩa hoàn hảo. Tuy nhiên đây không phải là một lỗi.
Tôi không thể tái tạo hành vi này trên một hệ thống linux.