我注意到有时命令可以完成标签。
e.g。 xen中的xm命令。
键入xm [space] [tab]并打印出有效选项 这是:
addlabel destroy info network-attach resume sysrq vnet-delete
block-attach dmesg labels network-detach rmlabel top vnet-list
block-detach domid list network-list save trigger vtpm-list
block-list domname loadpolicy new sched-credit unpause
cfgbootpolicy dry-run log pause sched-sedf uptime
console dump-core makepolicy reboot serve vcpu-list
create dumppolicy mem-max rename shutdown vcpu-pin
debug-keys getlabel mem-set resources start vcpu-set
delete help migrate restore suspend vnet-create
那太漂亮了!
如何在Linux中实现自己的tab命令完成?
答案 0 :(得分:9)
这是一个相当广泛的问题,但一般的想法是你注册了compgen
或complete
内置的东西。他们是both documented in the manual。上一节介绍了programmable completion的一般主题,介绍了如何处理完成尝试。
对于大量示例,请参阅/etc/bash_completion
,它提供bash附带的所有默认完成(超出文件名完成等完全内置的内容)。有关更多示例,请参阅/etc/bash_completion.d
中的任何内容;这些内容由/etc/bash_completion
自动提供,作为扩展默认完成的一种方式。
答案 1 :(得分:1)
在bash
答案 2 :(得分:1)
bash的智能完成由一系列脚本化的bash函数处理。在Debian,可能是Ubuntu以及其他Linux发行版上,您可以在/etc/bash_completion.d
中找到系统已安装的完成。
有关此机制的官方文件位于http://www.gnu.org/software/bash/manual/bash.html#Programmable-Completion
答案 3 :(得分:-1)