Customer Reviews


10 Reviews
5 star:
 (8)
4 star:    (0)
3 star:
 (2)
2 star:    (0)
1 star:    (0)
 
 
 
 
 
Average Customer Review
Share your thoughts with other customers
Create your own review
 
 

The most helpful favorable review
The most helpful critical review


13 of 15 people found the following review helpful
5.0 out of 5 stars Best book I ever wrote
Having heard that authors frequently review their own books, I thought I'd give it a try. This is, without a doubt, the best book on portable shell scripting I have ever written. Sadly, it is also the worst book on portable shell scripting I have ever written.

What I can tell you is this:
* Before I started writing this book, I thought I was fairly...
Published on November 11, 2009 by Peter Seebach

versus
9 of 11 people found the following review helpful
3.0 out of 5 stars not for beginners
"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...
Published on December 26, 2008 by Jeanne Boyarsky


Most Helpful First | Newest First

13 of 15 people found the following review helpful
5.0 out of 5 stars Best book I ever wrote, November 11, 2009
This review is from: Beginning Portable Shell Scripting: From Novice to Professional (Expert's Voice in Open Source) (Paperback)
Having heard that authors frequently review their own books, I thought I'd give it a try. This is, without a doubt, the best book on portable shell scripting I have ever written. Sadly, it is also the worst book on portable shell scripting I have ever written.

What I can tell you is this:
* Before I started writing this book, I thought I was fairly expert in portable shell scripting.
* I learned a lot more writing this book than I knew before I started writing it.
* This book has ended up being one of my key desk references, which is pretty funny, because you'd think I'd know this stuff by now.

I'm not totally happy with everything about this book. I'm giving it five stars anyway because I can't name anything I think is better for the purpose right now... But I wouldn't mind revising and expanding for a second edition.

Don't let the "beginning" throw you off; this book was a real eye-opener for me, and I'd been writing shell scripts for somewhere between fifteen and twenty years, including production software. On the other hand, if you've got a bit of programming experience, I like to imagine that you really could have this as your first introduction to the shell, and probably do just fine.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


9 of 11 people found the following review helpful
3.0 out of 5 stars not for beginners, December 26, 2008
By 
This review is from: Beginning Portable Shell Scripting: From Novice to Professional (Expert's Voice in Open Source) (Paperback)
"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 reg exps. 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."
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


6 of 7 people found the following review helpful
5.0 out of 5 stars Not only for beginners, December 7, 2008
By 
J. P. Mens (Germany, Europe) - See all my reviews
(REAL NAME)   
This review is from: Beginning Portable Shell Scripting: From Novice to Professional (Expert's Voice in Open Source) (Paperback)
Once in a while I find a book that gives me a memorable impression. One such book is Apress' Beginning Portable Shell Scripting by Peter Seebach.

Seebach covers historic aspects of the Unix shells as well as the ins and outs of shell programming. He explains very well why it is so important to think about portability, and that writing portable programs is often not very much more work than not doing so.

Although the book is titled Beginning Portable Shell Scripting it isn't a book only for beginners -- I know lots of pros who should read this book from cover to cover.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


2 of 2 people found the following review helpful
3.0 out of 5 stars Useful insights buried in a problematic text, November 1, 2011
Verified Purchase(What's this?)
This review is from: Beginning Portable Shell Scripting: From Novice to Professional (Expert's Voice in Open Source) (Paperback)
Peter Seebach's "Beginning Portable Shell Scripting: From Novice to Professional" is a relatively recent text on shell programming. Even though its focus is mainly on the least-common denominator of a huge variety of shells (including POSIX-compatible, older, and embedded ones), the author also mentions a number of extensions, in the hope that knowing about them will help the reader in one-off scripts, will facilitate understanding of non-portable scripts, and will also make it easier to avoid them.

The Good: Seebach's writing style is enjoyable. At times he's funny, e.g. "The name octothorpe is my favorite because people are completely consistent in not having any idea what I'm talking about"; most of the time he's mildly amusing, e.g. "If you can't write to standard error, you can't display a message on standard error saying that you can't write to standard error"; and throughout the book he just gives off a pleasant vibe. It's important to note that the relaxed tone is not really distracting, i.e. it does not interfere with the flow of the text. Seebach has included a multitude of best practices and common idioms from all aspects of shell programming. Some are pretty simple, e.g. the X"$answer" = X"42" test idiom; others follow from his focus on portability, e.g. don't use test's -a or -o operators -- stick to the shell's logical operators instead; and yet others have to do with security concerns, e.g. if you really need a temporary file, you have to be in control not just of the file, but of the directory it is created in. Throughout the text, Seebach is interested in shell features that will work on the vast majority of available (or not-yet-available) machines, e.g. to determine if ls is built-in the author does not mention the POSIX type command but recommends using PATH="" ls; echo $? instead. Seebach also covers material others exclude, e.g. instead of using the expr utility only for arithmetics he employs its colon operator to use regular expressions in the shell. What is perhaps the book's strongest point is the large number of trivia points, some of which don't seem really useful, e.g. multiple here documents in a single command line, or seem to have outlived their usefulness, e.g. the ${1+"$@"} idiom. Others are minor points that are still worth knowing about, e.g. the fact that a line continuation character is ignored inside a comment in shell but not in make. Yet others seem to be minor details which have serious consequences, e.g. a shell function body does not have to be a code block: it can be a subshell instead (though Seebach doesn't use the term "code block"). On a different note, even though the author doesn't refer to many other books (see below), he does provide a number of pointers to the external world, e.g. to parts of libtool or autoconf, as well as to a very interesting Pike/Kernighan paper on cat -v. Finally, the text includes a number of tables, the most interesting ones containing information that is not readily found elsewhere, especially Table 2-7, which shows the possible interplay between () and | when dealing with regular expressions, and Table 5-1, which is a compendium of information on shells calling shells via eval, command substitution, function calls, etc.

The Bad: first off, the book's title is orthogonal to its content. If someone does not know shell scripting (portable or otherwise) this book will not be able to teach them in any sane manner, as it is chock-full of cases where concepts are used way before they are introduced. (The book's title may not be the author's fault, but that is beside the point.) At the same time, this volume doesn't really discuss "advanced" shell scripting material (e.g. bc, cron, command) either -- though half a page is devoted to explaining the difference between a slash and a backslash. Still on the subject of what Seebach leaves out, it's worth noting that this volume does not include a table containing options/switches/expressions for the test command (like the -s, -f, -d, -n, -z, -x that the author sprinkles throughout the text). This is even more problematic when one takes into account that such necessary information is included in both introductory volumes (e.g. O'Reilly's "Classic Shell Scripting") and intermediate texts (e.g. Apress's own "Expert Shell Scripting"). The relationship of Seebach's text to other volumes is interesting: he writes that "whole books have been written" on one subject, that "there are other books that go into much more detail" on another topic, and that "there are wonderful books and tutorials available" on yet another subject, but fails to mention any of these (in the entire volume, the author explicitly mentions only two books other than his own). This is also related to Seebach's often idiosyncratic terminology: when discussing regular expressions he calls *+? "repetition operators", but it's important to note that the POSIX and bash documentations simply call them special characters and Friedl's classic calls them metacharacters. One's terminology should also be portable. Speaking of which, it's very disappointing to see the author's first printf example contain both a typo and a real portability blunder. If one tries to run name="John" printf "Hello, %s!\n" "$NAME" on any shell, $NAME would be an empty string (this should say $name). The more specific problem, though, is that history expansion in an interactive bash shell is similar to csh, so the exclamation mark doesn't do what the author thinks it does -- this problem can be eliminated through imaginative use of quoting or by disabling the feature with set +H. In ch. 7, Seebach adds insult to injury by claiming both that ! is expanded within single quotes (it isn't) and that interactive history expansion is off by default "in modern versions" (it never was and still isn't: bash versions are available via ftp). There are many other problems with this book. Most significantly, there are numerous errors in the code and in the alleged output: e.g. in ch. 4 I counted 5 typos in the 3 pages on the ${a:-b} forms, while in ch. 5 in only one line of code we find both bzip2 and bizp2 (!) as well as unbalanced quotes. The code examples seem to have never been tested. Another problem, hinted at earlier, is related with sed and awk: these are used throughout the book but are not introduced until ch. 11. That chapter is followed only by the Appendices which, incidentally, contain 80 pages of publicly available reference material. One gets the feeling that Seebach should (and probably could) have written a different book, more along the lines of the "Effective C++" and "Effective Java" texts, which provide insights and best practices but do not pretend to be reference or introductory works.

In a nutshell, this book does not really fill a gap in the bibliography: Robbins and Beebe's "Classic Shell Scripting" covers similar portability-oriented material, in a text that is both a better reference and more pedagogical, and which also teaches you some awk in the process. On the other hand, the book under review is quite short, its writing is generally pleasant, and it does contain some nuggets of wisdom here and there, so I'm giving it 2.5 stars.

Alex Gezerlis
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


3 of 4 people found the following review helpful
5.0 out of 5 stars Better than expected, November 26, 2009
Verified Purchase(What's this?)
This review is from: Beginning Portable Shell Scripting: From Novice to Professional (Expert's Voice in Open Source) (Paperback)
I already have some years of shell programming experience, but it was 6 years ago when I programmed shell-scripts actively. So I needed a refresher that especially explained the details of it which I could not remember anymore. This book did not only refresh my knowledge, but also showed me some new expert tricks and especially focused on portability issues I never noticed before and shows alternative ways. For example how to detect in which shell you are, how to replace a "select" command with normal shell commands in older shells, different ways of parsing options if the "getopts" is not available etc. It will prevent a lot of pain once I start to utilize my old ksh-scripts on the newer machines. I did not program portable, but at least now I know where to change and how. And once it's portable, I will have no future problems running my old ksh88-scripts on new bash or whatever.
Every example is explained. The knowledge of the later chapters build exactly on the knowledge of the previous chapters, so maybe a beginner can also follow up. But for a beginner I would recommend learning the Unix commands and their options first, which is not described in detail in this book. Instead, this book focuses on the glue between them, the shell surrounding, and it does this in detail. So a beginner who just wants the job done quickly would not understand what is so important about it, why a different and sometimes more complicated and longer way to achieve the same effect is much better.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


2 of 3 people found the following review helpful
5.0 out of 5 stars Stunningly Excellent, October 6, 2009
Verified Purchase(What's this?)
This review is from: Beginning Portable Shell Scripting: From Novice to Professional (Expert's Voice in Open Source) (Paperback)
I just received the book today and have read/skimmed through the work.

This is one of the most literate and thoughtful programming books I've read and ranks among the best on shell scripting.

Most books on scripting spend a lot of time on installation/environment issues, or "quick hits" to perform a specific action.

Author Seebach takes an approach more akin to classic works on programming -- and discusses in great depth and clarity the details of how the shell actually works. Throughout, this is a patient and thorough approach. Programmers who are learning the shell will find a this a most helpful discussion. However, those without a programming background will probably not understand why these issues are important. This provides required background for the goal of portability. As such it offers a wealth of insight into the technical operation of the shell.

There's not a lot of code in the work. However, it provides a thorough background on the many issues raised by shell portability -- and there are more than you'd expect.

This work focuses on descendants of the Bourne shell. The common base is POSIX. This includes: bash -- Bourne again shell, ksh -- Korn shell, Almquist and variants. zsh, or the Z shell, is mentioned in so far as it can emulate the POSIX standard. The C shell -- csh, and its more modern variant tcsh are not included for several reasons. The syntax of these shells is based more on C, and are not considered to be as robust alternatives for composing scripts. Their forte is command line operation in the opinion of the author.

If you like to think before you code, this is such a fine work to support your efforts. If you don't like to think before you code, you might want to rethink that...
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


2 of 3 people found the following review helpful
5.0 out of 5 stars Excellent on many levels, July 12, 2009
This review is from: Beginning Portable Shell Scripting: From Novice to Professional (Expert's Voice in Open Source) (Paperback)
This is one of those books that you can read fifteen times, and get more out of at each reading. It gives on many levels. On one level, it gives clear explanation of concepts that are often badly explained (I understand exactly how redirection works, and I'll never again make mistakes from muddy understanding of the concept). On another level, it is a treasure trove of useful tidbits that everyone seems to breeze by when reading the man pages. At the deepest level, it illustrates the power of the POSIX shell, a language far more expressive than I had previously given credit for. I would recommend this book to anyone serious about learning shell programming.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


5.0 out of 5 stars The Shell Scripting 'Big Picture'..., November 13, 2013
By 
Unix Lists (Chicago, IL USA) - See all my reviews
Verified Purchase(What's this?)
This review is from: Beginning Portable Shell Scripting: From Novice to Professional (Expert's Voice in Open Source) (Paperback)
If like me, you find yourself having to work with different shells at work and home, and need to write baseline utilities, this book can help you accomplish things quickly.
Even if you do need to write more involved programs, this book can still help you.

Overall, a refreshing look at shell scripting in general. Many thanks to the author for his time and effort in compiling this book.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


1 of 1 people found the following review helpful
5.0 out of 5 stars What a spectacular read., September 2, 2011
Verified Purchase(What's this?)
This review is from: Beginning Portable Shell Scripting: From Novice to Professional (Expert's Voice in Open Source) (Paperback)
I've been using the UNIX shell for about fifteen years now and actually felt pretty comfortable with it. I can't believe how much I've picked up from this book.
I'm a software programmer and have to deliver binary programs and shell scripts to customers. These customers often do not have the more modern UNIX shells. Additionally, they're rarely authorized to install non-OEM software on their carrier grade, mission critical systems. Sometimes they're not even allowed to install software that came with the boxed unit on a free, extra CD-ROM.

This often leaves me with nothing but good old Bourne SHELL to work with.

Everything is covered, the history of "Why they did this", to advice on writing scripts that will be run on embedded systems. The book contains scores of great shell scripting idioms.

When I do my UNIX systems programming I use my Richard Stevens book.
When I do my UNIX shell scripting I use this book by Peter Seebach.

This is not a beginners guide to UNIX shell scripting. It's a beginners guide on how to write or modify your scripts so they'll run everywhere. But even the experienced shell script writer will pick up a great deal more from this book than they expected.

Nice work Peter.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


1 of 1 people found the following review helpful
5.0 out of 5 stars Great book for advanced beginner Mac/Linux users, August 20, 2011
Verified Purchase(What's this?)
This review is from: Beginning Portable Shell Scripting: From Novice to Professional (Expert's Voice in Open Source) (Paperback)
I highly recommend this book to anyone who kinda knows Linux, or maybe is a Mac user wanting to automate some stuff through the shell. I find this book rather similar to Mastering Regular Expressions. I say this because like with the "Owl Book", after reading the first three chapters, I had enough in my toolbox to start writing real scripts. This is great for 2 reasons: it gets you up and running quickly, and also provides a HUGE amount of depth past just the fundamentals. I will be using this book as a reference for years to come.

I want to emphasize that I don't recommend this book as a first book on command line/shell scripting. It assumes you know the basics like ls,cd,cat,cp,mv, and maybe at least a little bit of grep. If you don't thoroughly know all those commands and use them often, you should wait to get this book until you're a little more comfortable with the command line. But for $0.01 new ($4 with shipping), I would say just go ahead and get it. This book has got the be the best value I've ever gotten for a penny!
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


Most Helpful First | Newest First

Details

Beginning Portable Shell Scripting: From Novice to Professional (Expert's Voice in Open Source)
$34.99 $24.89
In Stock
Add to cart Add to wishlist
Search these reviews only
Rate and Discover Movies
Send us feedback How can we make Amazon Customer Reviews better for you? Let us know here.