There is a very nice shell tutorial at LinuxCommand.Org.
Not only it covers all the stuff like conditions, loops, and functions, but it also provides a list of resources to continue your education on the matter. The language is simple and the examples are clear.
There is also a nice explanation on how to start writing scripts once you feel more or less comfortable with the command line itself. And, of course, you can find few ready made scripts in the script library over there.
Strongly recommended for shell beginners.