What's those underscore commands?
These functions whose name begins with an underscore are part of the programmable completion engine. Bash follows zsh's convention here, where the function that generates completions for somecommand
is called _somecommand
, and if that function requires auxiliary functions, they are called _somecommand_stuff
.
These completion functions typically do nothing useful or raise an error if you call them manually: they're intended to be called from the completion engine.
This follows on a fairly widespread practice in various programming languages to use a leading underscore to indicate that a function or variable is in some way internal to a library and not intended for the end-user (or end-programmer).
Related videos on Youtube
draw
Updated on September 18, 2022Comments
-
draw over 1 year
When I
tab tab
_
in terminal, Bash suggests 206 posibilities. I tried to run one of them_git_rm
but nothing happend, what are they?Here is a screenshot:
-
manatwork about 11 years
type _git_rm
will probably tell you that it is a function.grep -R '_git_rm' /etc/bash_completion.d/
will probably find it. Those functions are usually those which provide the various completion lists forbash
completion. -
derobert about 11 years@manatwork please post that as an answer.
-
manatwork about 11 years@derobert, I only intended to provide a quick hint so the question owner gets something before the expert answer posted ~7 hours later.
-
draw about 11 years@manatwork The answer is enough for me... I can explore more by myself :D If you don't mind, I'll accept Gilles's anwser though I think I should accept yours..
-
manatwork about 11 years@draw, Gilles' answer is probably based on research and experience, while mine is based on accidental observations made during directory crawling. Please accept his.
-
draw about 11 years@manatwork ok...
-