Pour les environnements non-XDG et bash-completion <= 2.8
Voici comment un utilisateur local peut disposer d'un outil de travail. ~/.bash_completion.d/
répertoire.
- modifier le fichier :
nano ~/.bash_completion
ajoutez ce qui suit :
for bcfile in ~/.bash_completion.d/* ; do
. $bcfile
done
- faire le répertoire :
mkdir ~/.bash_completion.d
- modifier le fichier :
~/.bash_completion.d/myscript
ajoutez ce qui suit :
_myscript_tab_complete () {
local cur prev opts
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
words="-f -h --etc"
COMPREPLY=( $(compgen -W "${words}" -- ${cur}) )
return 0
}
complete -F _myscript_tab_complete myscript
- source .bash_completion :
. ~/.bash_completion
anticipation d'un répertoire ~/.bash_completion.d/ vide
Si vous prévoyez d'avoir un espace vide ~/.bash_completion.d/
et vous voulez éviter de voir le message d'erreur bash: /home/<username>/.bash_completion.d/*: No such file or directory
ajouter un test de type de fichier avec [ -f "$bcfile" ]
.
for bcfile in ~/.bash_completion.d/* ; do
[ -f "$bcfile" ] && . $bcfile
done
Pour les environnements XDG & bash-completion <= version 2.8
(Pour voir votre version : rpm -qa | grep bash-completion
)
Notez que la documentation README de bash-completion 2.8 recommande encore ~/.bash_completion
Voir https://github.com/scop/bash-completion/tree/2.8
Vous savez que votre environnement linux est XDG si xdg-usr-dir
existe et renvoie votre répertoire personnel, et vos variables d'environnement incluent XDG_*
; exécuter : env | grep XDG
.
Pour l'environnement XDG & bash-completion >= version 2.9
Selon le README de bash-completion à partir de la version 2.9 https://github.com/scop/bash-completion/tree/2.9 (27 avril 2019) il est maintenant reconnu un répertoire de travail utilisateur local bash_completion. En outre, un autre fichier de configuration bash_completion a déjà été pris en charge pour plusieurs versions précédentes.
-
~/.bash_completion.d
-> ${XDG_DATA_HOME:-$HOME/.local/share}/bash-completion
-
~/.bash_completion
-> ${XDG_CONFIG_HOME:-$HOME/.config}/bash_completion
_Pour mettre en œuvre cette configuration, effectuez les étapes précédentes 3,4 ci-dessus en utilisant $XDG_DATA_HOME/bash-completion
- vous ne devez pas modifier $XDG_CONFIG_HOME/bash_completion
comme décrit à l'étape 1, mais il se peut que vous deviez créer le fichier $XDG_DATA_HOME/bash-completion
répertoire._
Note : À partir de CentOS 8.2 et Fedora 32, bash-completion <= 2.8 est installé.