achèvement bash pour certains types de fichiers dans un répertoire spécial

StackOverflow https://stackoverflow.com/questions/803653

  •  03-07-2019
  •  | 
  •  

Question

J'ai une liste de profils à l'unisson qui existe dans ~ / .unison / *. prf .

Je voudrais avoir la terminaison bash afin que lorsque je tape unison ou unison-gtk et que l'onglet soit frappé, la liste .prf les fichiers de ce dossier sans la partie .prf .

Peut-être un exemple serait plus clair:

$ ls ~/.unison/*.prf
default.prf dot-mozilla.prf to-desktop.prf

$ cd  ~  # just to show you don't have to be in the ~/.unison folder
$ unison to<tab>
$ unison to-desktop

Je prévois également avoir besoin de cela pour un autre outil. Il serait donc pratique de pouvoir réutiliser certaines parties.

Était-ce utile?

La solution

Si vous utilisez debian / ubuntu ou éventuellement d’autres distributions GNU / Linux, des exemples de ce type d’achèvement devraient figurer dans votre répertoire /etc/bash_completion.d/. Voici un exemple de configuration d’un script d’achèvement pour unison:

have unison &&
_unison_show()
{
        local cur

        COMPREPLY=()
        cur=${COMP_WORDS[COMP_CWORD]}
        COMPREPLY=($( compgen -W "$(for x in ~/.unison/*.prf; do echo $(basename ${x%.prf}); done)" -- $cur ) )
}
complete -F _unison_show unison
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top