[GLLUG] shell script question
Ben Pfaff
blp@cs.stanford.edu
12 Jul 2002 09:45:23 -0700
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/
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>