ฉันพยายามเขียนผลลัพธ์ของคำสั่งphp -i
ไปยังไฟล์โดยใช้php -i > info
และได้รับข้อผิดพลาดต่อไปนี้:
output is not a tty
มันหมายความว่าอะไร?
ฉันกำลังใช้git bash
บน Windows
ฉันพยายามเขียนผลลัพธ์ของคำสั่งphp -i
ไปยังไฟล์โดยใช้php -i > info
และได้รับข้อผิดพลาดต่อไปนี้:
output is not a tty
มันหมายความว่าอะไร?
ฉันกำลังใช้git bash
บน Windows
คำตอบ:
สิ่งที่ทำงานให้ฉันตามความเห็นของ Peh ไปที่ stackoverflow.com/questions/33622087
หากคุณใช้ C: \ Program Files \ Git \ bin \ bash.exe แทนที่จะเป็น C: \ Program Files \ Git \ git-bash.exe คำสั่งจะทำงานได้ดี
ฉันพบหัวข้อที่คล้ายกันเช่นนี้ ทางออกหนึ่งที่เหมาะกับฉัน:
เขียน
php.exe -i > info
แทน
php -i > info
ดังนั้นคุณต้องต่อท้าย.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
node
conemu
ฉันเชื่อว่าปัญหานี้เป็นเรื่องเกี่ยวกับวิธีการที่ Git Bash จัดการกับการวางท่อและน้อยกว่าเกี่ยวกับ PHP เพราะฉันพบอาการเดียวกันโดยใช้ Python บน Windows คำตอบขณะนี้การโหวตมากที่สุดไม่ทำงานสำหรับฉัน มันอาจจะทำงานไม่กี่เดือนต่อมาขึ้นอยู่กับความคิดเห็นนี้และแสดงความคิดเห็นการติดตาม แต่ฉันก็ใจร้อนดังนั้นฉันเลือกที่จะใช้ Windows Command Prompt ดั้งเดิมและ voila ใช้งานได้!
ไม่ทำงานใน 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
คุณกำลังนำคุณออกจาก terminal (tty) ของคุณไปยังไฟล์ ดังนั้นผลลัพธ์ของคุณจึงไม่ใช่ tty อีกต่อไป
ข้อความทำให้รู้สึกที่สมบูรณ์แบบ อย่างไรก็ตามสิ่งนี้ไม่ควรเป็นข้อผิดพลาด
ฉันไม่สามารถทำซ้ำพฤติกรรมนี้ในระบบ linux