这些下划线命令是什么?


10

当我tab tab _在候机楼时,Bash建议206种可能性。我尝试运行其中之一,_git_rm但是什么也没发生,这是什么?

这是屏幕截图:

在此处输入图片说明


11
type _git_rm可能会告诉您这是一个函数。grep -R '_git_rm' /etc/bash_completion.d/可能会找到它。这些功能通常是提供各种完成列表的功能bash
manatwork

@manatwork,请发布答案。
derobert 2013年

@derobert,我只想提供一个快速提示,以便问题所有者在大约7小时后发布专家答案之前得到一些东西。
manatwork 2013年

@manatwork答案是足以让我......我可以自己探索更多:d如果你不介意的话,我会接受吉尔的anwser虽然我认为我应该接受你的..
画出

@ draw,Gilles的答案可能基于研究和经验,而我的答案则是基于目录爬网期间的偶然观察。请接受他的。
manatwork

Answers:


12

这些函数的名称以下划线开头,它们是可编程完成引擎的一部分。击这里遵循的zsh的约定,其中产生的补全功能somecommand调用_somecommand,如果该功能需要辅助功能,他们被称为_somecommand_stuff

如果您手动调用这些完成功能,它们通常无济于事或引发错误:它们是从完成引擎中调用的。

这是在各种编程语言中相当普遍的惯例之后的,使用前导下划线表示函数或变量在某种程度上位于库内部,而不是供最终用户(或最终程序员)使用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.