"Beginning Portable Shell Scripting" has a very clear mission - teach the reader how to write shell scripts that will work in all Bourne family shells. The book assumes you know UNIX already. While you don't need to know shell scripting already, it is helpful. The book is very intense if you are using it learn the scripting basics at the same time.
I like how the author starts by showing the interactive command type in by the user vs what is evaluated/run vs what is output. This was a good way to teach shell scripting quoting. I also like the emphasis on what happens in edge cases.
I think that non-portable code could be better flagged. It's easy to gloss over embedded in the text. Or find again. Two chapters really went into detail on portability. I guess I expected it to be flagged throughout.
Chapter two says you can skip it if you already know regexps. A word of advice: don't. I recommend skimming it anyway the chapter contains valuable distinctions on globbing/shell expansion. I also liked chapter three's multiple attempts at a script showing the errors in each until getting to the desired behavior.
As an aside, there's about 80 pages of appendices and the about the technical reviewer page was both entertaining and written completely in UNIX shell script.
The book mainly loses points for not being aimed at beginners with a title containing the word "beginning."
subject: Beginning Portable Shell Scripting: From Novice to Professional (Expert's Voice in Open Source)