Date: Tue, 16 May 2006 08:59:23 -0700 From: "Atom Powers" <atom.powers@gmail.com> To: "Kyrre Nygard" <kyrreny@broadpark.no> Cc: questions@freebsd.org Subject: Re: Some shell scripts; a more elegant approach? Message-ID: <df9ac37c0605160859q6b8376e1saca51f2cf3504645@mail.gmail.com> In-Reply-To: <7.0.1.0.2.20060516105228.02238068@broadpark.no> References: <7.0.1.0.2.20060516105228.02238068@broadpark.no>
next in thread | previous in thread | raw e-mail | index | archive | help
It is difficult to understand exactly what you want your script to do
without comments. You may get a better response if you can describe
what you want your scripts to do.
On 5/16/06, Kyrre Nygard <kyrreny@broadpark.no> wrote:
>
> Hello!
>
> I have a bash script here to clean .txt files.
>
> But I want to incorporate a feature where, if the .txt file is
> less than 300 bytes, it will echo "$file: Corrupt".
>
> I'm very new to scripting, but I know that this method is not really nice=
:
>
> --
>
> for file in `find -s . -type f -name "*.txt"`; do
>
This line is redundant, if you ">| $file.tmp" below. (or if you turn
"noclobber" off for your shell)
> mv -f $file $file.tmp
>
> tr -d '\r' < $file | cat -s | sed -E -e 's/[[:space:]]+$//' > $fi=
le.tmp
>
I don't see why you need an empty file here.
> echo > blank
This line doesn't do anything.
> echo >> $file.tmp
>
why not just "mv $file.tmp $file"?
> cat blank $file.tmp >> $file
>
> rm -f blank $file.tmp
>
> done
>
You should probably do this on the .tmp file before you overwrite the origi=
nal.
> for file in `find . -type f -name "*.txt" -size -300c`; do
>
> echo "$file: Corrupt"
>
> done
>
> --
>
> I also have another script here that I'm wondering some about:
>
> --
>
> echo "Giving files to user $1, group $2."
>
> chown -R $1:$2 *
>
if [ $3 -a $4 ] ; then
> echo "Setting files to $3, folders to $4."
>
> find -s . -type f -exec chmod $3 '{}' \;
> find -s . -type d -exec chmod $4 '{}' \;
>
fi
> --
>
> It mass sets permissions and ownerships.
>
> In it, I have to specify $1, $2, $3 and $4. If I just specify let's say
> $1 and $2, it will error out because the finds in $3 and $4 aren't
> given anything.
>
> How do I avoid this?
>
> Thanks people, I apologize for my ignorance,
>
> -- Kyrre
>
> _______________________________________________
> freebsd-questions@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-questions
> To unsubscribe, send any mail to "freebsd-questions-unsubscribe@freebsd.o=
rg"
>
--=20
--
Perfection is just a word I use occasionally with mustard.
--Atom Powers--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?df9ac37c0605160859q6b8376e1saca51f2cf3504645>
