Prevent automatic EOFs to a named pipe, and send an EOF when I want it

I have a program that exits automatically upon reading an EOF in a given stream ( in the following case, stdin ).
Now I want to make a shell script, which creates a named pipe and connect the program’s stdin to it. Then the script writes to the pipe several times using echo and cat ( and other tools that automatically generates an EOF when they exit ). The problem I’m facing is, when the first echo is done, it sends an EOF to the pipe and make the program exit. If I use something like tail -f then I can’t send an EOF when I intend to quit the program. I’m researching a balanced solution but to no avail.
I’ve already found both how to prevent EOFs and how to manually send an EOF but I can’t combine them. Is there any hint?

Bash – Continuous String Manipulation

#!/bin/bash FILE="$(basename "$1")" FILE="${FILE/%.jpeg/.jpg}" Is there anyway to glue these two lines together into a one-liner? Answers: Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave … Read more

Renaming multiple files with rename

I need to rename files in batch–the other questions I browsed don’t exactly address my problem. The names of my files are generated non-deterministically, so I can’t predict what they will be named. I do know that they will start with NORMAL and end with -lib*. I’d like to replace everything in between with some string X. For example,

Elegant solution to echo to either stdout or file in bash

I have a bash application that is producing some result, and I’d like to echo the result to either stdout or to a user chosen file. Because I also echo other interactive messages going to the screen, requiring the user to explicitly use the > redirection when he wants to echo the result to a file is not an option (*), as those messages would also appear in the file.