The part that is not fine, is that the output is not
labeled with the
application that it came from.
For example, I seem to remember that if in the past, if you ran grep, for
example, anything that grep sent to its console would be prefixed by "grep:"
Ewww... that would be terrible if I wanted to capture the output of a program
for later processing :)
No, you're thinking of stderr output, which by convention is
often prefixed with '$0:'. I mean, how would you like it if
you typed 'ls', only to get back:
ls: slow.wav
ls: slow.wav2
ls: smc_router_firmware
ls: sober
ls: sound
ls: soundon.log
ls: spell
ls: spell.bak
ls: src
etc... No, that's too Microshaft. Here is a possible solution:
Create an executable shell script in your path that looks like this:
#***** SCRIPT *****
function showme(){
while read foo
do echo $1: $foo
done
}
$@ | showme $1
#***** /SCRIPT *****
I called mine, "identify".
Now, let's test it with grep:
sinewave:toby:toby> identify grep foo *
grep: Binary file DSC00326.TIF matches
grep: Binary file QtC-0.0.2.lsm matches
grep: adf: afsdadsfadfasdfasdfasdfasdfasdfasdf toby adfadfadf foo
grep: adf: print('myfoot', 'myfoot');
grep: adf: print('yourfoot', 'yourfoot');
grep: doit: while read foo
grep: doit: do echo $1: $foo
So, now stdout and stderr get prefixed with the name
of the program. Easy, yes?
Tobiah