Another bit of picky....
[ -z "$1" ] && exit 1 tests if $1 is an empty string. This is essentially the same as testing whether or not the first argument exists. This is fine if you just want an arbitrary string. In this case, however, you want specifically a filename, so it might be better to test for an existing regular file (f):
[ -f "$1" ] || exit 1
Take note that using "$1" will exit on filenames that contain spaces...although since I hate spaces in filenames I typically don't bother addressing this issue myself =op
3rd: FILE="${1##*/}" is the same as FILE=`basename $1`, which I think is more universally supported. It's probably not uch of an issue. EDIT: I guess it doesn't make a difference which one you use