Top critical review
6 people found this helpful
on 10 March 2011
This book closely resembles the Shell: Consistent, non-intuative, quirky, arcane, not self-explanatory.
It regulary gives examples which use elements it has not yet explained. This would be ok if the unknown element were clearly seperate from the known elements in the example, because you can just keep the unknown bit on hold for later. Of course using known elements would be clearer still, but not always possible.
The trouble is that in Shell scripting a tiny change in the syntax alters the whole way the command is interpreted. This means that you can't be sure if the unknown element is part of the thing being explained or not. eg Are those \'s part of the command being explained, part of the unknown element, or there to cover some quirt of the Shell that this particular example has uncovered. The book regulary does not explain which, and leaves you with singular examples rather than broader understanding.
The book describes the Shell from the point of view of someone who really understands the Shell; that sounds good doesn't it? But if you are from outside you really need it explained from the point of view of someone who understands the Shell and where YOU are coming from. Otherwise it is like talking to an expert rather than a teacher.
IF (condition) THEN (commands);
sounds easy enough,eh?
But what is the sytax for the conditions?
The syntax is never explained, and for a very good reason. I'm not going to try to tell you why, because I'm reviewing the book not the Shell, but I think the book should tell you why the conditions have no syntax. If it did you would quickly move forward, but it leaves you to spot all the complex implications of some very terse statements for yourself. The closer you are to being a genius the easier it will be for you.
It also uses some careless language which confuses things. For example, if the Format is followed by the String, it is confusing to refer to the Format as the format string, even though it is one, because it could mean the string OF the format, the string that is WITH the format or the pair as a whole.
This can leave you 'trying this or that' to see what works, which of course is disasterous in an environment such as the shell where so many gotchas exist.
Not for begginers.
Also, note that one other reviewer suggests you consider whether the Shell is the best tool for your job. eg Perl