Maybe I'm old-fashioned, but I love BASH for scripting. It has functions, arrays, traps, and all the other goodies I need to duct-tape stuff together and make my computer do unusual things without too much fuss. Escaping is a pain in the rear, but I suspect it's that way for all scripting languages...mostly because "regular" expressions don't have a particularly uniform syntax across external commands, and every external command has its own variety of syntax quirks (sed, awk, grep: I'm looking at you).
I sometimes wonder if some of the complaints about bash come as a result of it not being like whatever programming/scripting language people have spent a lot of time studying in college (or at home), or because it takes quite a lot of time to learn everything BASH can do.
I use the Advanced Bash-Scripting Guide, every time I script in BASH, and always learn something new and interesting.
Oh, and it can be used as a command-line interpreter, too. ;-)