Você precisaria de um parter duplo. Um , um script de conclusão:
_webs() {
local cur prev projdir=/var/www/projects/some/long/path
COMPREPLY=()
cur=$(_get_cword)
prev=${COMP_WORDS[COMP_CWORD-1]}
COMPREPLY=( $( compgen -W '$( command ls "$projdir/$cur*" | sed "s|$projdir/||")' -- '' ) )
}
complete -F _webs webs
_get_cword
depende do pacote bash-completions que está sendo instalado. Se você não tiver, altere a linha:
cur=$(_get_cword)
para:
cur=${COMP_WORDS[$COMP_CWORD]}
Dois , uma função:
webs () {
local projdir=/var/www/projects/some/long/path
cd "$projdir"
do_something_ "$@"
}