I got this book through Packt's daily give-away of technical books (linked above). It's a program I've come to value highly, having given me a number of very useful books. This one is particularly good: the author has managed the obvious - but apparently very difficult, given how few technical books achieve it - trick of introducing the most basic stuff first and then building on it piece by piece while carefully explaining the constructs as he goes. He's also managed to choose an excellent selection of tools after developing your Bash programming skills, moving on to basic introductions to sed, awk, Perl, and Python. I was particularly impressed with his intro to awk: I've always found awk useful, but very difficult to get my head around. His intro seems to have finally got me past whatever mental blocks I was struggling with.
Mastering Linux Shell Scripting
by Andrew Mallett