2
การส่งข้อมูลไปยัง stdin ของกระบวนการโดยไม่ทำให้ EOF เกิดขึ้นภายหลัง
ฉันมีไฟล์ปฏิบัติการที่เริ่มต้นเชลล์แบบโต้ตอบกับผู้ใช้ เมื่อต้องการเปิดตัวเชลล์ให้ฉีดคำสั่งสองสามคำก่อนจากนั้นอนุญาตให้ผู้ใช้มีเซสชันแบบโต้ตอบ ฉันสามารถทำได้อย่างง่ายดายโดยใช้echo: echo "command 1\ncommand 2\ncommand3" | ./shell_executable นี้เกือบจะทำงาน ปัญหาคือคำสั่ง echo ที่ป้อน stdin ของกระบวนการจะกระทบ EOF เมื่อดำเนินการตามคำสั่งของฉันแล้ว EOF นี้ทำให้เชลล์ยกเลิกทันที (ราวกับว่าคุณกด Ctrl + D ในเชลล์) มีวิธีฉีดคำสั่งเหล่านี้ลงใน stdin โดยไม่ทำให้ EOF ภายหลังได้หรือไม่