Exemple pour compléter avec un nom de répertoire dans un dossier particulier :
Pour mon script « prepareDirFromWeb » qui se trouve dans mon dossier « /home/michael/bin » , je créé le fichier /etc/bash_completion.d/prepareDirFromWeb qui contient le code suivant :
# bash completion for Debian apache2 configuration tools
# $Id: apache2,v 1.1 2005/03/16 22:51:19 guillaume Exp $
_prepareDirFromWeb()
{
local cur prev opts dirList
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
opts="--help --verbose --version"
dirList="`ls -d /var/www/*/ | awk -F / '{print $5}' `"
if [[ ${cur} == -* ]] ; then
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
return 0
else
COMPREPLY=( $(compgen -W "${dirList}" ${cur}) )
fi
}
complete -F _prepareDirFromWeb prepareDirFromWeb