Not to mention that it would make the shell significantly less efficient: consider a program whose output is huge. You surely don't want this to be kept in memory (or even on disk) if it's not to be used afterwards. Just collecting all this output would waste a lot of CPU. There's this rule about optimizing for the common case. Common case is to output to the output terminal and be done with it.
Yes, I am aware that this probably shouldn't be a default feature, since bash is already considered "too big and too slow". But, nevertheless, I
would like to try it.. I don't think I would mind the CPU waste, and
huge outputs like that, to produce those kinds of "not wanting", are
kind of rare.
If you need its output, just run it again.
Now, if you really want to be able to take the output of some random program you ran and feed that into another program, there are ways to do that. Start GNU screen, or a shell within GNU Emacs, or just use some terminal program with a configurable scrollback buffer and, whenever you need the output of some other program, you can scroll back and cut&paste the output into the input of another program. No need to build such abilities into the shell.
That wouldn't come close to "grep whatever $__".. :)
Thanks a lot, good stuff -- Herculano de Lima Einloft Neto