#!/usr/bin/env bash _broker () { local cur=${COMP_WORDS[COMP_CWORD]} reply_list=$(grep "()" broker.sh|cut -d' ' -f1|grep -v "()") COMPREPLY=( $( compgen -W "$reply_list" -- $cur ) ) return 0 } complete -F _broker -o filenames ./broker.sh