I want to run two executables in the foreground by typing one line of code or running a shell script. These executables watch a directory and recompile some code while outputting their status to stdout.

I want the stdout to be presented in the same way as following two files in 'tail' like so:

2 Answers
2

Since the two executables write to standard output, you may be able to just tail the files produced by process substitution:

tail -f <( executable_one ) <( executable_two )

(Only one -f needed, by the way. It's a global option, not something you need to specify for each file.)

Each of the two executables runs separately, and its output is captured and redirected to a file handle which is passed tail. In the output, the file names will appear as something like "/dev/fd/63". Unfortunately, I don't know of a way to get tail to use an alternate name (like with grep and the --label option).