17 of 18 people found the following review helpful:
4.0 out of 5 stars
Unleash the power of the shell, November 27, 2005
This review is from: Shell Scripting Recipes: A Problem-Solution Approach (Expert's Voice in Open Source) (Paperback)
While the Bourne shell is listed as a full fledged programming language, few people use it like that. Some of it is that they prefer more commonly acknowledged languages like Perl, Python or the like. However, with a book like Shell Scripting Recipes: A Problem-Solution Approach, they'll want to thin twice about it.
I remember my first forays into shell scripting. I didn't want to learn Perl (then the clearly dominant scripting language), and worked hard to learn shell, awk, and sed so that I could do the things I needed to do and automate as much as possible. It paid off, and even impressed a few die hard Perl fans. Less code to do simple tasks, faster to write, and always present. While I don't do nearly as much shell scripting as I used to, I still enjoy seeing someone do neat things in /bin/sh, ksh, or bash.
Chris Johnson's book is in the traditional line of a reference book, much like the O'Reilly cookbook series or, more accurately, the old tome, UNIX Power Tools. It's got a couple of non-recipe chapters, and the rest of it is a lot of fun, useful shell scripting.
Chapter 1 is an invaluable reference to large portions of the POSIX shell language. Johnson covers things like built in commands and program flow, special variables, and variable expansion. He also clearly covers the differences between the Bourne shell and the POSIX shell where they differ. If you're worried, using Bash will almost always work with the examples, I think.
At this point it's easy to think, "I can call out to external commands for a good chunk of the functions he develops." You can, but Johnson makes a compelling argument that shows the impact of a fraction of a second can add up quickly in loops. At this point, you're either agreeing with him and seeing the joy of a direct language like shell or you soon will.
Chapter 20 is a small set of recipes but they serve a different function, namely helping you manage all of these new shell scripts and functions. You can copy, instantiate new shell scripts more easily (by automating the redundant bits), or package them up with simple scripts. Handy tools, and a decent approach.
The recipes run the gamut from the simple to the uncommon, but they all illustrate how do accomplish useful tasks in a shell script. They include file conversion (DOS, UNIX, and Mac), string handling bits, filename management, complex date calculations, screen control capabilities, and even HTML processing. Some of my favorite recipes include the Postscript generation tools (!) and the database management tools. While some people have done these in shell scripts, I've usually seen them done using sloppy or confusing approaches. Johnson's code is clear, direct, and applicable.
That's probably the biggest strength to the book, Johnson's clear writing and examples. Some programming and scripting books try and show you neat tools to accomplish a task, but they don't do a good job of showing you how to translate it to your specific task. In Shell Scripting Recipes, Johnson chooses his code carefully, articulates how it works, and continually builds on a theme. If you pick a few scripts and study them, you'll see tips and tools you can use in your own shell scripts. He also has nicely abstracted scripts that let you recycle his functions in your own scripts with ease.
Overall I quite like Shell Scripting Recipes, I think that while it's easy to think less of the Bourne shell as a language, Johnson has done a good job of writing a concise set of examples, usable code, and in a format that is continually useful and clear. If you've been thinking about improving your shell prowess, this is the book for you.
Help other customers find the most helpful reviews
Was this review helpful to you? Yes
No
13 of 13 people found the following review helpful:
5.0 out of 5 stars
My Shell is a Programming Language?, October 3, 2005
This review is from: Shell Scripting Recipes: A Problem-Solution Approach (Expert's Voice in Open Source) (Paperback)
This book was kind of an epiphany for me. I've been writing shell scripts for nearly as long as I've been writing programs, but I've always drawn a mental distinction between the two. There was programming, and then there was scripting.
After coding in languages like Perl and then Ruby, the distinction has become increasingly blurred. Many of my "scripts" have proven far, far more useful than anything I've written in a "proper" programming language! They back up my servers, they keep me informed of problems, they've saved me a minute here, a minute there, for perhaps ten years now! So what, really, is the distinction?
I think, to some extent, a shell script is ultimately just limited by a lack of any libraries of code. It lends itself well to simple tasks, but if you do anything even moderately complex, you have to stop and switch to Perl or Ruby. But now Mr. Johnson has written a book that more or less creates a library in your shell script. And the tasks he writes about are so incredibly common, and his recipes so well organized, that you can just flip to a chapter like "Backing Up the Drive" or "Good Housekeeping," and find a dozen solutions to questions you're guaranteed to run into when writing your shell scripts. This book also does an excellent job of showing examples that rely on as few external programs as possible - making them perfectly portable.
This is the most useful book on shell scripting out there, and I wish I could have picked it up ten years ago. If I had, it would still be on my shelf today.
Help other customers find the most helpful reviews
Was this review helpful to you? Yes
No
12 of 14 people found the following review helpful:
5.0 out of 5 stars
Handy Shell Guide for Unix/Linux Users, July 9, 2005
This review is from: Shell Scripting Recipes: A Problem-Solution Approach (Expert's Voice in Open Source) (Paperback)
Shell Scripting Recipes provides the reader with a handy reference for shell tasks that range from the common (how do I extract a portion of a string?) to the complex but sometimes entertaining (find words that fit together on a grid aka make your own crossword). The author does a great job in his layout by presenting the problem, listing the solution and then explaining how it works. The script solutions and examples are broken down by topic and each chapter is indexed on the side of the book for easy reference by the reader.
The book was written for those who have had some Unix/Linux experience under their belt and now want to explore some of the power of the shell itself. Seasoned BASH shell users know that one of the most powerful aspects of the system is the ability to create applications that perform necessary tasks or functions just by using shell scripting. This book would be ideal for anyone who wants to get more out of their system that just using the GUI-interface that has become so common.
Most of all, it covers a lot of problems that occur everyday and that we sometime spend hours looking for a solution for. Things such as removing excess linefeeds from a file, reformatting text, retrieving data automatically and other related tasks -- things that shell scripting excels at providing a mechanism to solve.
Not for the beginner, but a must-have for the experienced Unix (particularly BASH shell) user.
Help other customers find the most helpful reviews
Was this review helpful to you? Yes
No