Problem with bash script

Paul Schmehl pauls at
Tue Jun 16 15:02:39 UTC 2009

--On Tuesday, June 16, 2009 08:09:09 -0500 Carmel NY <carmel_ny at> 

> I am attempting to write a simple Bash script that will find all the
> '*.pem' files in a directory structure and move them to another
> directory. It seems to work until I get to the copy part where it fails.
> My scripting skills are not that good. Perhaps someone could tell me
> what I am doing wrong.
> This is the script:
># ! /usr/bin/env bash
># Save the field separator
># Set it to line breaks
> IFS=$'\n'
> for i in $(find ./ -name "*.pem" -print); do
># Get the basename
> BN=$(basename $i)
># copy the file to another directory using the base name
> cp $i /usr/home/tmp/$BN
> done
># Reset the IFS variable
> exit

When I write scripts, I test them on the commandline to see if they're doing 
what I think they're doing.  I don't get the $(find ....) construction.  You're 
invoking find from within a for loop to return a value.  Use backticks.

This works.

for i in `find ./ -name "*.pem" -print`

Paul Schmehl (pauls at
Senior Information Security Analyst
The University of Texas at Dallas

More information about the freebsd-questions mailing list