| ||||||||||||||||||
![]() Trade In this Item for up to £4.00
Get an extra £5 when you trade in books worth £10 or more until June 30, 2012. Trade in Learning the bash Shell: Unix Shell Programming (In a Nutshell (O'Reilly)) for an Amazon.co.uk gift card of up to £4.00, which you can then spend on millions of items across the site. Trade-in values may vary (terms apply). Find more products eligible for trade-in.
|
Product details
|
Tags Customers Associate with This Product(What's this?)Click on a tag to find related items, discussions, and people.
|
If you are a beginner, and you are able to chose your scripting language for your job, you might want to look at some of the more recent languages, such as 'python'. They are more regular, and easier to learn and maintain.
Anyway, back to the book. There are things you shouldn't do in a book that may be uses as an introduction and a reference. You should not give examples of code with bugs in, that you explain in the following chapter (ta-daa, aren't I clever?!). You should not give tables of functions or commands unless you list all the commands. If there is an exception to a rule, then you should at least mention it even if you haven't covered that case yet, or, better still, re-arrange the book so the exceptions are explicable. You must resist the urge to surprise the reader: this is shell scripts, and the reader will probably have had their fill of surprises. Last of all, and a personal one this, lay off the Lewis Carroll, please?
You need to be ultra-careful about quotes. When "@" appears in the text, does this mean a string of one character or three? Can you see whether the quotes are in heavy type?
You need to be really careful to distinguish what is 'in' the shell, and what commands and variables are outside it. Pattern matching is a key part of the shell, so regexps ought to be explained in some detail. The simple demo scripts should not have 'ed' and 'sed' commands stuck in without saying where they came from.And why not mention the debug flag before chapter 9?
There are some dubious comments about programming style. Is it really bad to use the 'break' statement in a loop? Is '<command1> && <command2>' really an obscure and unnecessary way of doing command2 if command1 fails? - I find it neat and compact.
This is a pity, because there are some good bits. The flow diagram on p178 and the attendant text about how command lines are processed is good (well, right up to the "-and it's not the whole story!", but you get the idea). But, for completeness, I reckon if there is something I want to look up about the bash shell, I am going to use my old Korn shell book rather than this book.
Strengths of the publication are the clear explanations of the bash shell programming environment, the effective use of tables to summarize basic shell language and programming constructs, UNIX-based utilities, shell environment customization, shell Syntax, Bash File Operators and control key definitions.
A chapter is devoted to edit mode capabilities (both eMacs and Vi Command-Line Editing Commands are covered and summarized effectively in clearly doucmented tables).
The book contains a number of terse script programming tasks, which provide clear examples of the material presented in the text. These program examples are reworked to provide a clear example of how Bash scripts can be modified to provide greater flexibility and reusability of Bash shell program code.
I would like to see more robust programming shell examples in the book as examples of mini-applications, which Bash is frequently used for in many Unix-based or Unix-derived platforms. The "Task 5-1" program example is an example where a good example of a program, which does an adequate job of clearly covering the use of Bash File Operators, yet the author(s) make the statement that the code is "relatively long winded".
Another area the book could address is the use of Bash in a Windows environment. I was able to port some of the programming tasks presented to a Windows 95/98 environment using the GNU Bash Version 2.03 for Windows package available on the internet.
Despite these drawbacks, I rate the book four stars on the strengths that it is the only readily-available publication, which is solely devoted to Bash shell use and programming. The O'Reilly publication is definitely worth the investment, if you are looking for a book to get you started on Bash Shell Script programming on a Unix, Linux or Windows (to a limited degree) environment.
|