Saya memiliki program yang keluar secara otomatis setelah membaca EOF dalam aliran yang diberikan (dalam kasus berikut, stdin).
Sekarang saya ingin membuat skrip shell, yang membuat pipa bernama dan menghubungkan stdin program ke sana. Kemudian skrip menulis ke pipa beberapa kali menggunakan echo
dan cat
(dan alat-alat lain yang secara otomatis menghasilkan EOF ketika mereka keluar). Masalah yang saya hadapi adalah, ketika yang pertama echo
dilakukan, ia mengirim EOF ke pipa dan membuat program keluar. Jika saya menggunakan sesuatu seperti itu tail -f
maka saya tidak dapat mengirim EOF ketika saya bermaksud untuk keluar dari program. Saya sedang mencari solusi yang seimbang tetapi tidak berhasil.
Saya sudah menemukan cara mencegah EOF dan cara mengirim EOF secara manual tetapi saya tidak bisa menggabungkannya. Apakah ada petunjuk?
#!/bin/sh
mkfifo P
program < P & : # Run in background
# < P tail -n +1 -f | program
echo some stuff > P # Prevent EOF?
cat more_stuff.txt > P # Prevent EOF?
send_eof > P # How can I do this?
# fg
exec 3>P
sebab ini bertahanlah, mengapa?