for loop and sed

Kurt Granroth plug-discuss at granroth.org
Thu Sep 7 16:38:22 MST 2006


Nathan England wrote:
> I have about 50 users in /home
> I want to create a cron job for each user that will run sa-learn on a spam 
> file. I have it properly setup for my user, but I want to copy that to each 
> other user, then use sed to replace my user name in each file with the proper 
> user name.
> 
> I did this
> 
> for user in '/bin/ls /home'; do
> cp /var/spool/cron/nengland /var/spool/cron/$user
> sed -i 's/nengland/$user/' $user
> chown $user $user
> done
> 
> While it worked, instead of replacing nengland with the username, it literally 
> replaced it with '$user'
> 
> What is the proper way to do this?

Try with double quotes instead of single quotes.  The single quote char
tells the shell not to expand variables.


More information about the PLUG-discuss mailing list