I would like to be able to run task(s) in the background of a shell and not have their output to stdout or stderr cover the command line at the bottom. Frequently I need to run other commands to interact with the background processes and would like to do so from the same shell without having to open up another terminal or using multiplexer to split the terminal like screen.
Ideally there would be some setting that I just don't know about (I commonly use bash or ksh), but a new or different shell or a script would be fine by me.
I'm open to any suggestions and appreciate any help, thanks.
Edit: Thank you for all of your answers, but my question was a bit unclear. I still need to watch the output of the backgrounded tasks as it comes out, I would just like it to not cover any new commands I might be typing on the command line. Ideally, the output from backgrounded programs would be displayed in all but the bottom line of the shell leaving me free to construct new commands in that line.
This would be similar to running screen with a horizontal split where the bottom window was only 1-2 lines tall, but using screen has the following drawbacks for my purposes:
- I don't need/want the processes to survive past my logout
- It takes an extra command or two to set up (even if the split and window sizing are done on a .screenrc file)
- I'd like to be able to use the shell's job control commands without switching between screen windows (ie jobs, bg, fg, kill %1 at least in the case of bash)
Thanks again for your help, this was my first question and I've been blown away by the speed and quantity of the answers!