Cameron Newham and Bill Rosenblatt, O'Reilly, 0596009658
Having used UNIX shells for more than ten years, I never bothered to truly understand what a shell was all about. I figured that any serious piece of programming work should not be done in shell scripts. So I thought I was perfectly happy not being able to write shell scripts with control constructs etcetera.
Nevertheless, every piece of simple automation software I write usually involves some shell script at some point. And some regular expression. At which point I usually turned to good friends sed and grep.
That went on until I saw some examples of the regular expression options in bash, solving solutions where I used sed in some horribly contrived way.
From that moment I knew that I was a fool for not knowing what was possible with this piece of software that I use daily.
Few months later, I walked into the local Donner bookstore and when walking past the O’Reilly section, picked up the Newham and Rosenblatt book. I quickly scanned it, and saw that it had the right O’Reilly format: conscise chapters with to the point examples.
Apart from being a good bash guide, it also illustrates many UNIX concepts.