2019-02-13
|~2 min read
|272 words
I recently figured out how to write a shell function. The problem is that pretty quickly I’d forgotten which functions I’d written, or fi I had a general name, I couldn’t remember what they did exactly.
So, I wanted to figure out a few things:
This is where using Print and Whence came in handy.
We can use the print built-in: print -loc ${(ok)functions}
(note, l
is new line separated, o
is ascending ordering, and c
makes columns).
Figuring out where a function is defined can be done with whence -v [function]
. This is useful if you want to modify a function definition.
Before going in and changing a function definition, however, you may want to know what the function actually does.
The whence
builtin is one way to accomplish this with the -c
and the -f
options.
According to the manual:
c
option prints “the results in acsh-like format. This takes precedence over-v.”f
option “causes the contents of a shell function to be displayed, which would otherwise not happen unless the -c flag were used.”The commands would look like whence -c [function]
or whence -f [function]
.
It’s worth noting that the Stackoverflow conversation on the topic notes several other approaches, however, whence
performed accomplished my use case nicely and I didn’t feel the need to explore much further at this time.
Hi there and thanks for reading! My name's Stephen. I live in Chicago with my wife, Kate, and dog, Finn. Want more? See about and get in touch!