1_my-app() { 2 local i cur prev opts cmd 3 COMPREPLY=() 4 cur="${COMP_WORDS[COMP_CWORD]}" 5 prev="${COMP_WORDS[COMP_CWORD-1]}" 6 cmd="" 7 opts="" 8 9 for i in ${COMP_WORDS[@]} 10 do 11 case "${cmd},${i}" in 12 ",$1") 13 cmd="my__app" 14 ;; 15 *) 16 ;; 17 esac 18 done 19 20 case "${cmd}" in 21 my__app) 22 opts="-h --help [arguments]..." 23 if [[ ${cur} == -* || ${COMP_CWORD} -eq 1 ]] ; then 24 COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) 25 return 0 26 fi 27 case "${prev}" in 28 *) 29 COMPREPLY=() 30 ;; 31 esac 32 COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) 33 return 0 34 ;; 35 esac 36} 37 38complete -F _my-app -o bashdefault -o default my-app 39