b) It tried and failed to run the script. Therfore, the script is
somehow broken, even though it seems to work just fine
when tested from the command line.
This is the setup for a major wild goose chase.
Better error messages might ameliorate the problem --- but it would be
better if it weren't so easy to make this error in the first place. It's
easy to slip up with chmod without knowing it, and when that makes things
break (as when 'chmod * 664' snags a directory by mistake), it can be
pretty tricky to figure out what's gone wrong. ('ls' works, but nothing
else does). But accidentally renaming foo.html to foo.doit --- that's
tough.
In fact, suffix-based naming conventions are all over Unix, and many other
widely used operating systems, in part because on many of these systems, a
file's name is one of the few unique attributes the thing has got. I don't
think it's "inelegant" that the C compiler treats files whose names end in
'.c' different from those whose names end in '.o', and I've never found it
to be bothersome. Perhaps it's a matter of taste --- but like I said,
arguments over those will never be resolved.
rst