Belirli bir akış (aşağıdaki durumda, stdin) bir EOF okuduktan sonra otomatik olarak çıkan bir program var.
Şimdi adlandırılmış bir kanal oluşturan ve programın stdin'ini ona bağlayan bir kabuk betiği yapmak istiyorum. Daha sonra komut dosyası, ve (ve çıktıklarında otomatik olarak bir EOF oluşturan diğer araçlar) kullanarak birkaç kez boruya yazar . Karşılaştığım sorun, ilk yapıldığında boruya bir EOF gönderiyor ve programdan çıkış yapıyor. Eğer böyle bir şey kullanırsam , programdan çıkmak istediğimde EOF gönderemem. Dengeli bir çözüm araştırıyorum ama boşuna.
Zaten EOF'ların nasıl önleneceğini ve manuel olarak bir EOF'un nasıl gönderileceğini buldum ama bunları birleştiremiyorum. İpucu var mı? echo
cat
echo
tail -f
#!/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
neden bash içinde asılı, neden?