Book Review: bash Cookbook (2E) ๐
About the book
The book I've completed reading (sort of, more on that later) is OReilly's bash Cookbook, 2nd Edition. For the readers unfamiliar with cookbooks, these books are specifically written for intermediate to advanced users/programmers of a particular language/subject domain. These books contain recipes which the reader can just pick and paste into their day to day programming activities. One good thing about cookbooks is that a cookbook can generally be read out of order - it is a collection of [mostly] discrete recipes.
Motivations for reading
I consider myself a fairly intermediate user of the command line :). Still there are so many things that I do not know or understand. I saw the book on a Humble Bundle sale and grabbed it immediately. I wanted to revise old concepts and perhaps learn a few new techniques, solidifying my knowledge and workflow even further.
Book Review
The book is excellent. Out of 10 tux, I am inclined to give it a solid 9:
๐ง๐ง๐ง๐ง๐ง๐ง๐ง๐ง๐งโญ
Some recipes I found to be very enlightening. I have skipped(for now) many of the serious bash programming recipes. I find it pragmatic to do those things in a different scripting language, for eg, Python. bash is good for small, repetitive stuff, but any serious programming should really be done elsewhere is what I believe. I consider my shell to be more of a glue to connect things rather than a proper programming tool/language. Anyways, that is my very own opinion. The opinion of the reader might differ and I welcome that.
I found myself going back to the book several times after reading it, just to do a specific task. The problem-by-recipe nature of the book makes it so much more useful for finding things when they are needed and time is scarce.
There were some minor annoyances while reading the book too. The authors mention, at several occasions, the problem of portability, and its workarounds. I, at times, found myself confused because of that. A matrix of this-command-will-work-on-this-os would have been helpful, though I believe that was not the aim of this book. The problem is a more general problem of fragmentation in the software industry and not authors' fault ๐. I appreciate them mentioning however much they did.
Overall, the book was a joy to read and I would definitely recommend it to a person who wants to enhance their shell-fu.