May 04, 2014: Added Matt Might's Bash By Example
I have an intense love-hate relationship with Bash. It sure feels like achieving reasonable proficiency at Bash has been the hardest and most frustrating thing in my professional career thus far. Yet, it is extremely rewarding. Bash is extremely effective in certain situations. This effectiveness is what has enticed me to keep at it.
There are many things about Bash that make it awkward. Knowing where to look for answers is really invaluable. Most of these actually come from #bash on Freenode. Unfortunately, I cannot recommend the channel itself as I have had bad experiences. Still, these resources are the the clearest and most useful I have found.
The Bash manual is surprisingly complete and clear. It provides a good first reference for variables, substitutions, and other Bash nuances.
The Bash Guide is provides a reasonable general overview of Bash. This is a great orientation to the world of shell scripting.
The Bash FAQ. You will encouter behavior in Bash that is baffling. My first real understanding of the complexities in Bash came from looking at the "I'm trying to put a command in a variable, but the complex cases always fail!" Bash FAQ entry. These entries are great for clearing up confusion. The same goes for the Bash Pitfalls reference.
Matt Might's bash by example is probably my new favorite resource.
Hopefully you, dear reader, will have an easier time than I wrangling the beast that is Bash.