9
จะไม่ทำสิ่งใดตลอดไปอย่างสง่างาม?
ผมมีโปรแกรมที่ก่อให้ข้อมูลที่เป็นประโยชน์ในแต่ยังอ่านจากstdout stdinฉันต้องการเปลี่ยนเส้นทางเอาต์พุตมาตรฐานไปยังไฟล์โดยไม่ต้องให้อะไรกับอินพุตมาตรฐาน จนถึงตอนนี้ดีมาก: ฉันทำได้: program > output และไม่ทำอะไรเลยใน tty อย่างไรก็ตามปัญหาคือฉันต้องการทำในพื้นหลัง ถ้าฉันทำ: program > output & โปรแกรมจะถูกระงับ ("ถูกระงับ (อินพุต tty)") ถ้าฉันทำ: program < /dev/null > output & โปรแกรมหยุดทำงานทันทีเนื่องจากถึง EOF ดูเหมือนว่าสิ่งที่ฉันต้องการก็คือการเข้าไปในท่อสิ่งที่ไม่ได้ทำอะไรสำหรับจำนวนเงินที่แน่นอนของเวลาและไม่ได้อ่านprogram stdinแนวทางต่อไปนี้ใช้ได้ผล: while true; do sleep 100; done | program > output & mkfifo fifo && cat fifo | program > output …