Date: Tue, 16 Jun 2009 16:16:26 +0100 From: "Daniel Bye" <danielby@slightlystrange.org> To: FreeBSD Questions <freebsd-questions@freebsd.org> Subject: Re: Problem with bash script Message-ID: <20090616151626.GD93430@torus.slightlystrange.org> In-Reply-To: <7F04C88B7C6A39C7E1B6F366@utd65257.utdallas.edu> References: <BLU0-SMTP586D9F12148D0B6683B635933F0@phx.gbl> <7F04C88B7C6A39C7E1B6F366@utd65257.utdallas.edu>
next in thread | previous in thread | raw e-mail | index | archive | help
--JwB53PgKC5A7+0Ej
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
On Tue, Jun 16, 2009 at 02:33:37PM +0000, Paul Schmehl wrote:
> --On Tuesday, June 16, 2009 08:09:09 -0500 Carmel NY=20
> <carmel_ny@hotmail.com> wrote:
>=20
> >
> >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
> >oIFS=3D$IFS
> >
> ># Set it to line breaks
> >IFS=3D$'\n'
> >
> >for i in $(find ./ -name "*.pem" -print); do
> >
> ># Get the basename
> >BN=3D$(basename $i)
> >
> ># copy the file to another directory using the base name
> >cp $i /usr/home/tmp/$BN
> >
> >done
> >
> ># Reset the IFS variable
> >IFS=3D$oIFS
> >
> >exit
> >
>=20
> When I write scripts, I test them on the commandline to see if they're=20
> doing what I think they're doing. I don't get the $(find ....)=20
It does exactly the same as `command -a rgs`, but all characters between
the parentheses are taken literally (in the backtick form, certain chars
have special meaning, but not in the $() form.)
> construction. You're invoking find from within a for loop to return a=20
> value. Use backticks.
>=20
> This works.
>=20
> for i in `find ./ -name "*.pem" -print`
> do
> foo
> bar
> done
It also works with the $() form, provided the target directory exists!
Dan
--=20
Daniel Bye
_
ASCII ribbon campaign ( )
- against HTML, vCards and X
- proprietary attachments in e-mail / \
--JwB53PgKC5A7+0Ej
Content-Type: application/pgp-signature
Content-Disposition: inline
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.11 (FreeBSD)
iEYEARECAAYFAko3t0oACgkQixf5fBYiFmqVrACffBmCn76T5aud+KmMHFlQrcP2
1XcAn3KfajVpkGq3tioCe9+++k2wPYTD
=A/4y
-----END PGP SIGNATURE-----
--JwB53PgKC5A7+0Ej--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20090616151626.GD93430>
