function _lunch()
{
local cur prev opts
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
COMPREPLY=( $(compgen -W "${LUNCH_MENU_CHOICES[*]}" -- ${cur}) )
return 0
}
complete -F _lunch lunch 2>/dev/null
说明:
其中COMP_WORDS COMP_CWORD都是系统自动变量,保存输入命令行参数及索引。
$(compgen -W "${LUNCH_MENU_CHOICES[*]}" -- ${cur})
表示从${LUNCH_MENU_CHOICES[*]}数组中匹配${cur}开头的字符串。
complete -F _lunch lunch
表示lunch命令的匹配函数为_lunch。
COMPREPLY为按tab键弹出的选项列表。