Re: bash trick - prefixing a command?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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
> 


[Index of Archives]     [Current Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite News]     [Yosemite Photos]     [KDE Users]     [Fedora Tools]     [Fedora Docs]

  Powered by Linux