completion automatique dans un terminal ?

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

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.