Kullanıcı etkileşimli bir kabuk başlatan bir yürütülebilir dosya var. Önce, kabuğun çalıştırılmasından sonra, önce birkaç komut enjekte etmek, sonra kullanıcının etkileşimli oturumuna izin vermek istiyorum. Bunu kullanarak kolayca yapabilirim echo
:
echo "command 1\ncommand 2\ncommand3" | ./shell_executable
Bu neredeyse işe yarıyor. Sorun, sürecin stdinini besleyen yankı komutunun, komutlarımı yankılamasıyla EOF'a çarpmasıdır. Bu EOF, kabuğun derhal sonlanmasına neden olur (sanki kabukta Ctrl + D tuşlarına basmışsınız).
Daha sonra EOF'ye neden olmadan bu komutları stdin içine enjekte etmenin bir yolu var mı?
./shell_executable
Komut listesinin sonuna eklemeyi denediniz mi? İki çalışan örneğiniz olmasına rağmen (ebeveyn ve çocuk) bu devam edebilir.