[GLLUG] shell script question

Mike Rambo mrambo@lsd.k12.mi.us
Fri, 12 Jul 2002 12:58:26 -0400


Ben Pfaff wrote:
> 
> Mike Rambo <mrambo@lsd.k12.mi.us> writes:
> 
> > I'm trying to wite a bash shell script that will place a configuration
> > file in each users home directory. I can come up with a list of targets
> > by using...
> >
> > ls /home | grep drwx | cut -d : -f 2 | cut -d \  -f 2
> 
> This looks fragile; e.g., take my own /home:
> 
> blp@pfaff:~(0)$ ls -l /home
> total 16
> drwxrwxr-x   89 blp      blp          8192 Jul 12 09:40 blp/
> drwxr-xr-x    5 root     root         4096 Jun 13  2001 teams/
> drwxr-xr-x    2 timd     timd         4096 Jul  6  2001 timd/
> 

Yes, Ben (basher584) suggested using ...

for i in `ls -l $HOMEDIR | grep ^d | awk '{ print $9 }'`;

...instead of the command I was using.

> Now consider the lines that don't contain any colons at all.
> 
> What's wrong with `/home/*'?
> 
> > ...which I can direct to a file or whatever. Is there a way to take the
> > resulting list and assign or use each item sequentially as a variable in
> > a statement something like...
> >
> > cp file-i-want /home/$TARGET
> >
> > ...to copy this file to potentially many user directories at one time?
> 
> for d in `...your command...'; do cp file-i-want /home/$d; done
> --
> "Debian for hackers, Red Hat for suits, Slackware for loons."
> --CmdrTaco <URL:http://slashdot.org/articles/99/03/22/0928207.shtml>

Thanks to both Ben's.

-- 
Mike Rambo
mrambo@lsd.k12.mi.us