On Thu, Jul 28, 2011 at 8:34 PM, Mukesh Yadav <[email protected]> wrote:
> I'm trying to compress js file via shell script here is code
>
> #!/bin/sh
> for file in `find . -name "*.js"`
> do
> echo "Compressing $file …"
> java -jar ~/yuicompressor-2.4.6/build/yuicompressor-2.4.6.jar --type js -o
> min/$file $file
> done

This shell script has other bad practices which should be
avoided:

1. Don't run programs like find in back ticks and capture output.
    If the output from find is large, then shell will end up using a
    lot of RAM or run out of RAM and break.  Back ticks is also
    a security risk.

2. Always protect your scripts from file names with spaces.  In
    your case a filename with a space character will break your script.


Best option is to use the -exec flag in find and invoke commands
directly.  See the man pages.
Eg.  find . -name \*.js -exec gzip '{}' ';'

If there are too many matches, then use xargs.
Change all dirs to 755 permissions like this:
Eg. find . -type d -print0 | xargs -0 chmod 755

- Raja
_______________________________________________
ILUGC Mailing List:
http://www.ae.iitm.ac.in/mailman/listinfo/ilugc

Reply via email to