Bash is like a friendly nemesis to me. I use it all the time for simple commands and I often think, "If I could just string two or three of these commands together with some simple logic I won't need to move to a ‘real’ development environment!" But then stuff like this...
...means six hours later I have a bash script and 99 problems. This article helps explain why I run into trouble by describing how bash evolved.