A reader writes in with the following note:
I’ve just picked up your book Wicked Cool Shell Scripts, and there are a lot of nifty things in
it. I too have accumulated a lot of things generally in small scripts
or more frequently in bourne/bash functions. I was particularly tickled
to see a lot of very similar code, one such that jumped out at me was
your gmk function in one script (I called mine kmg).Would you be interested in some constructive criticism?
In script #52 Killing Processes by Name, I think that instead of:
awk “/ $1$/{ print \$2 }”
you might consider using
awk “$NF==”$1″ { print \$2 }”That way, you’re not dependent on whitespace.
You’re right, this is a better approach to the problem, but you’re not solving the same problem I am. 🙂
What I’m getting is the last field if and only if it’s prefaced by a space, whereas you’re ignoring the leading space and looking just to see if the last field matches “$1”.
Where might this differ?
When the output is a single word on a line by itself: with your conditional it could match, whereas with mine it couldn’t.
Nonetheless, I am happy to hear about smarter and more logical ways to solve problems that I talk about in my book, so please do feel free to send any further thoughts in!