_para() { local cur prev sect i manpath tmp COMPREPLY=() cur=${COMP_WORDS[COMP_CWORD]} prev=${COMP_WORDS[COMP_CWORD-1]} #_expand || return 0 case "${COMP_WORDS[1]}" in cs|cs|strdel|strq) COMPREPLY=( $( eval para_client streams | grep "^$cur" \ 2>/dev/null ) ) return 0 ;; info|la|us|ca|ls|pic|us) COMPREPLY=( $( eval para_client ls "$cur%" ) ) return 0 ;; sa) COMPREPLY=( $( eval para_client laa | grep "^$cur" \ 2>/dev/null ) ) return 0 esac # default completion if parameter contains / # [[ "$cur" == */* ]] && return 0 #echo "cur=$cur" COMPREPLY=( $( eval para_client help | cut -f 1 | sed 1d | grep ^$cur 2>/dev/null ) ) # weed out directory path names and paths to man pages COMPREPLY=( ${COMPREPLY[@]##*/?(:)} ) COMPREPLY=( ${COMPREPLY[@]} $( compgen -G $cur\*.[0-9ln] ) ) return 0 } complete -F _para -o default para complete -F _para -o default para_client