我注意到有时候命令可以完成.
例如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命令完成?
解决方法
这是一个非常广泛的问题,但一般的想法是你注册compgen或完整内置的东西.它们是
both documented in the manual.上一节记录了
programmable completion的一般主题,介绍了如何处理完成尝试.
对于大量的示例,请参阅/ etc / bash_completion,它提供bash附带的所有默认完成(超出完全内置的东西,如文件名完成).有关更多示例,请参阅/etc/bash_completion.d中的任何内容;这些是由/ etc / bash_completion自动提供的,作为扩展默认完成的一种方式.