The precmd hook seems to not get called on first invocation, and gets called recursively for every subsequent invocation.