On Tue, 2005-10-25 at 14:22 -0400, Dr. Michael J. Chudobiak wrote: > Rodolfo Alcazar wrote: > > On Tue, 2005-10-25 at 13:00 -0400, Dr. Michael J. Chudobiak wrote: > >> I want to do some shell trickery so that when a user enters a command like: > >> > >> ls -l > >> > >> the command is forwarded to another program as an argument. That is, > >> what actually gets executed is: > >> > >> myprog "ls -l" > > > > > > [rodolfoap] /home/rodolfoap/test > function ls() { /bin/ls|grep -v two; } > > > Thanks, that is a neat trick that I wasn't aware of, but "ls -l" was > just an example of one possible input. I want to forward every command > to my own program, not just "ls" commands. > Would it always be the same program? if so then the alias would work well, but would be tedious to create one for every command in the system. A fairly simple script that would loop forever could read all input and then call your program with the input as the arguments. You would have to trap the ability to break out of the script so they could not get to an actual shell. something like while 1 do readline <read the command input line> <put the values read into VARS here> myprog $VARS <call your program while passing the values read> <reset VARS here> done > An alias feature with wildcards or regular expressions (on the _left_ > side of the alias definition) would do it, but bash doesn't have that > particular feature. > > > - Mike >