_cd_complete() { # sets local to this func vars local cur prev all cur=${COMP_WORDS[COMP_CWORD]} # prev=${COMP_WORDS[COMP_CWORD-1]} all=${COMP_WORDS[@]} # this is where we generate the go-arg output GOARGS=$(smartcd --auto-complete \'$cur\' $all) # this compares the command line input from the user # to whatever strings we output COMPREPLY=( $(compgen -W "$GOARGS" -- $cur) ) # THIS WORKS return 0 } complete -F _cd_complete cd