David Tansley
1 Full of errors
First, it's clear that often a reviewer will give a good book a bad rating because they don't understand the material of the book and are frustrated. I want to assure you that I am NOT one of those people. I am frustrated for far different reasons.
I bought this book because it seemed to cover many topics which are just obscure enough that other shell programming books for beginners leave them out. I'm not a beginniner, but I'm not an expert, and simply want to read about some commands I'm not already familiar with to broaden my horizons.
However, I do have enough experience to soon realize that the book had far too many errors to be useful. These aren't just typos either. For example, on page 66 the author states, "To run a list of commands in the current shell, seperate each command with a command seperator, and enclose the list with round brackets." and then goes on to give an example:
$ comet month_end || (echo "Hello, guess what! Comet did not work"|mail dave; exit)
Well, if one didn't know better, one might actually believe this was correct. Of course, he also states that, "To run...in the subshell...use {} instead of ()." and then I quote:
The general format is:
{command1; command2;..)
(Yes, that is his unmatched parenthesis, not mine.) The typo is rather harmless, but giving the exact opposite meaning to something, than it actually has is not. I quickly lost my confidence in the accuracy of the book, which makes it virtually useless as a reference manual. It may still be useful to get the general idea of a command, but I wouldn't dare copy the examples in the book without reading the man pages first to make sure they are correct.
There seems to be a typo on every page, often two or three, the index is also awful, and some of the examples are dirt-dumb. Here is an example from the section on the null statement (:):
if [ "`ls -A $DIRECTORY`" = "" ]
then
echo "$DIRECTORY is indeed empty"
else : # do nothing
fi
I'm sure this is a very useful, non-trivial example of the null statement...the profoundness just hasn't sunken in yet.
In sum, I believe that the editor position at Addison-Wesley is just a figurehead job, and that those 1000 monkeys trying to type Hamlet produced this as one of their early drafts.
2 definitely NOT a good book!
I don't think this is a good book. I have compared this book with other shell programming books and and found this book is not good at all. So when I need to refer a shell script book I would not use this one. Besieds, the author is really careless, this book contains a lot of errors.
when I wrote this review, I found there are altogether 14 reviews already. Seems some of the reviewers had the same feeling toward this book as me.
3 Best Shell Programming Book I've Found Yet!
I own no less than ten books on shell programming and this one has helped me more than the rest combined. The author has the talent for condescending to my level to explain concepts that I have had a great deal of trouble understanding. I was able to write a menu driven script to simplify the loading and unloading of a tape library after reading just two chapters from the middle of the book. I even created my first shell function in the process. Yes there are a few typos. I'm not sure why some of the more sophisticated reviewers had a problem with this. I still found the book very useful and was able to catch the intended meaning in spite of the typos. If you are a genius this book may not be for you. If you are trying to learn how to write scripts quickly I highly recommend it. I would have traded all my other scripting books for this one had I known how useful it is.
4 Very useful
Well. I normally don't review books.
But this one is a constant on my bookshelf when I do any shell programming and I find it very useful.
It has lots of examples, is well organised and Mr. Tansley's way of putting things make it a pleasant read.
I highly recommend this book.
5 Is it a joke? Unix humor?
Addison-Wesley, a company known principally for its lavish gifts to university faculty members, and long ridiculed by the IT community, has produced a stunning achievement with this book. The company has managed to produce a technical book so full of so many kinds of errors - typos, grammatical, technical - that one wonders for a moment if it wasn't intended as "humor". Simultaneously, the company has also made its views on the importance of the quality of its products very clear: it isn't a concern.
In his acknowledgements, Mr. Tansley thanks his "editor", Steve Temblett along with Steve's assistant, Alison Birtwell. He should have had them arrested. If Addison-Wesley is paying Tansely, Temblett, and Birtwell, it should save its money. There is almost certainly an equal amount of accurate information on unix shell scripting in the same number of pages torn at random from London tabloids. Probably more. (And the company needs every dime; department chairs don't come cheap!)
As for Mr. Tansley (Can it possibly be his real name? Could one really attach one's name to a product this shoddy?): one hopes he is excersing slightly more care at the insurance company for which he works, Ace Global Markets, than he did during the production of this work. Still AGM would be well advised to order an audit.
This reviewer believes that accuracy IS important in technical publications. And he believes that it is unspeakably arrogant and insulting to issue and sell a book this badly prepared. The author should have read his own work. Instead, he tells us in the chatty preface how charming his children were about his gramatical mistakes and typos. But then, his children could afford to charming about the books errors and omissions; they weren't being asked to pony up $...for it.
Addison-Wesley, too, should have read and edited this book before sending it to market. Failing that, the company should have recalled the book when the number and magnitude of the errors were discovered. They ignored the errors. Not a word on their web site. No errata. Nothing. The reader is urged to follow the company's example. Ignore Addison-Wesley's books.
6 It's hard not to write a good shell book
It was a good book, i use it only for reference material and my girl is now helping herself thru a class with it (as of feb 21, 03). Overall, we both find it useful/helpful in many levels of our lifestyle with linux. (Sorry this review wasn't more informative, but it's not possible to be without diving headlong into a book you only use for reference We can both say it's an excellent for this purpose.)
7 Simply a great book on Unix Shell Programming
Reviewer: A reader from Modesto, CA United States
This is a marvellous book on Unix/Linux shell programming. D. Tansley knows unix/linux very well, and is a very good teacher too. (In my opinion if you study this book and "The Korn Shell" by Olczak you'll become very good at Unix and Shell scripting.) He has obviously thought a great deal about the organization of the book; in my opinion he has done it very well. About 1/2 the book is devoted to grep, find. awk, cron, file permissions, quoting, the login environment, etc. His explanations are the best I have read, and all this is enhanced by his organization of the material and his examples. He then gets into shell scripts, things like conditional testing, control flow structures, functions, and then more advanced material. And once again he does a very nice job. The more I read this book and use it in my daily work, the more impressed I am with it. If you are a unix/linux user do yourself a favor and get this book. One reviewer has given this book a scathing review; in my opinion this reviewer is totally off-the-wall. It may be that he has a problem with the english language (he's from Swizterland). Set aside his remarks.
8 Marvellous book on Unix/Linux Shell Programming
This is a marvellous book on Unix/Linux shell programming. D. Tansley knows unix/linux very well, and is a very good teacher too. He has obviously thought a great deal about the organization of the book; in my opinion he has done it very well. About 1/2 the book is devoted to grep, find. awk, cron, file permissions, quoting, the login environment, etc. His explanations are the best I have read, and all this is enhanced by his organization of the material and his examples. He then gets into shell scripts, things like conditional testing, control flow structures, functions, and then more advanced material. And once again he does a very nice job. The more I read this book and use it in my daily work, the more impressed I am with it. If you are a unix/linux user do yourself a favor and get this book.
9 this book has many examples other don't have!
1. This book contains many errors like other readers have pointed out, but its shell programming examples really help me. Those examples I can't find from other books. 2. This book will not help you too much in unix concepts, and thus you may have to buy another good unix concepts book to solve those problems. 3. overall, as long as you have enough time to play those examples in your unix machine and want to write a 30 pages of codes like those in chapter 21 and 22, this is definitely the one you want and bring you to another level! 4. personally, I buy two different books to study a computer skill. One is the text book by college professor who may insure the concepts are correct, the other is the book having enterprise examples. But it is so hard for one to find the one having both. This book partially fit my second need!
10 This book has many examples that other books don't have!
1. This book contains many errors like other readers have pointed out, but its shell programming examples really help me. Those examples I can't find from other books. 2. This book will not help you too much in unix concepts, and thus you may have to buy another good unix concepts book to solve those problems. 3. overall, as long as you have enough time to play those examples in your unix machine, fix those probems you find, and want to write a 30 pages of codes like those in chapter 21 and 22, this is definitely the one acn help you and bring you to another level! 4. personally, I buy two different books to study a computer skill. One is the text book by college professor who may insure the concepts are correct, the other is the book having enterprise examples. It is hard for one to find a book having both. This book partially fit my second need!
11 Good concept, bad execution
At first sight, this book would seem to provide a nice review of shell programming. However, once I started to read the book I was amazed at the number of typos. Some were just silly and indicated absolutely no editing; others were more serious and compromised the learning process. Mr Tansley must be embarrased to see his name on such an amateur effort.
12 A very poor book
Don't buy this book. Not only that; if you receive it as a gift, don't bother reading it.
I made the mistake of judging (and ordering) it by its "Contents". I have ordered a fair number of programming books from Amazon, but this is the first one bad enough to compel me to write a review.
The author is painfully unable to express himself with the clarity required by this kind of book. This leads to confusion and, sometimes, to errors. To compound this, the book seems to have received no proofreading whatsoever.
A few samples, from Chapter 2, "Using find and xargs":
pg. 21
"-print When find finds the files, this prints them to standard output"
pg. 22
"-newer file1 file2 Find files that are newer than file1 but older than file2"
"-size c n Find files by block 'n' size or by character length 'c', which is taken as bytes."
pg. 23
"-mount Use find to find files only on mounted filesystems"
pg. 25
"Find files by modification times
[...] Use the '-' to specify files that have not been accessed in x number of days. Use '+' for files that have been accessed in the last x number of days. To find all files that have been modified in the last five days: $ find / -mtime -5 -print "
pg. 30 -- a masterpiece
"When using the -exec option in find to process files, find passes all the located files to exec to be worked on in one go. Unfortunately on some systems there is only a limited command line length that can be passed to exec before it bombs out after running for a few minutes with an error message. The error message usually says 'Too long on Args list' or 'Args list exceeded'. This is where xargs comes in, especially when using find. Find passes on the located files to xargs and xargs grabs the files in portions and not all in one go, unlike using exec. Thus it can process the first portion of files, do its stuff, then request the next batch of the files and so on."
Well, and so on it goes. I resisted as far as Chapter 5, "Shell input and output". (So, yes, I didn't read the whole book. There is a chance it miraculously becomes excellent after chapter 5 :-)). One more pearl of wisdom (pg. 57):
"Standard error is file descriptor '2'. [...] You may be wondering why there is a special file for errors; well, some people like to keep their errors in a separate file, especially when processing large data files, where a lot of errors might be raised."
I would have laughed, if I hadn't paid for the book. Perhaps I should have read the "Acknowledgements" section before ordering. There, the author says:
"When it comes to writing a book in the end, it's just the author and the keyboard tapping away a merry tune into the early hours of the morning."
Well, that might explain some things. And further:
"I would also like to thank my children Louise and Matthew for their help. Louise for informing me of grammatical errors as I was typing away: thanks Louise!"
Well, it's a pity Matthew apparently doesn't know anything about the shell.
So, learn from my mistake and stay away from this book.
13 Typos, typos
The first few pages of this book that I have read so far are full of typos. How can one believe that what one is reading will work when the text itself has not been verified?
The examples are poorly presented for readability. One does not know where the target ends and the source begins because there are no spaces.
Once I have had a chance to look at the content I may revise my review upwards but so far I am unimpressed.
14 Tansley's Linux book is an Amazing Friend to keep nearby
A friend of mine raves about "Linux & Unix Shell Programming" by David Tansley, and I certainly have to agree with him.
In my case, I had to add Linux to my Windows 98 computer so that I could better talk to and understand programmers who enter the programming contest at . This book would almost be my "Best Friend" if such a thing were possible, because it lets me look up the DOS terms I memorized years ago and see the equivalent Linux terms and syntax. (I'm in love with that feature, by the way)."Linux & Unix Shell Programming" even has material that will help you learn the same CGI that is found on many web pages, and, thank goodness, the wild cards I fell in love with in DOS are there.
As you can see from the table of contents, below, it covers quite alot of ground, from "Introduction to Linux/Unix in general" to "Building CGI scripts for a web site."
Cool, eh?
Definitely buy it if you're looking to understand Linux, and especially if you're an old DOS user from the early computer age.
The Table of Contents is below. I hope you fall in love with it.
John Knoderer
mazes@msoworld.com
webmaster@mazes.com
-- PART 1: THE SHELL
-- Chap 1. File Security and Permissions
-- Chap 2. Using 'find' and 'xargs'
-- Chap 3. Running Commands Unattended
-- Chap 4. Filename Substitution <-- talks about wildcards
-- Chap 5. Shell Input and Output <-- cat, echo, redirection,...
-- Chap 6. Command Execution Order
-- PART 2: TEXT FILTERING
-- Chap 7. Introducing Regular Expressions <-- Important!
-- Chap 8. The 'grep' Family
-- Chap 9. Introducing 'awk'
-- Chap 10. Using 'sed'
-- Chap 11. Merge and Divide <-- sort, uniq, cut, paste
-- Chap 12. Using 'tr'
-- PART 3: THE LOGIN ENVIRONMENT
-- Chap 13. The Login Environment
-- Chap 14. Environment and Shell Variables
-- Chap 15. Quoting
-- PART 4: BASIC SHELL PROGRAMMING
-- Chap 16. Introduction to Shell Scripts
-- Chap 17. Conditional Testing
-- Chap 18. Control Flow Structures <-- if/then/else, for, while
-- Chap 19. Shell Functions
-- Chap 20. Passing Parameters To Scripts
-- Chap 21. Creating Screen Output
-- Chap 22. Creating Screen Input
-- Chap 23. Debugging Scripts
-- Chap 24. Shell Built-in Commands
-- PART 5: BETTER SCRIPTING SKILLS
-- Chap 25. Going Further With Here Documents
-- Chap 26. Shell Utilities
-- Chap 27. A Small Collection of Scripts
-- Chap 28. Run Level Scripts
-- Chap 29. CGI Scripts <-- Yes, the CGI scripts
-- APPENDICES
-- Appendix A. ASCII Art
-- Appendix B. Useful Shell Commands
15 Good Job!
The author has explained the critical concepts in a lucid manner. Part 5 of the book is a must read. Overall a very good book.