¿Cómo restablecer COMP_WORDBREAKS sin afectar a otro script de finalización?
Hay algo que me confunde cuando implemento una función de autocompletado de bash en la que lo pondré en/etc/bash_completion.d/
Con el fin de lograr alguna característica, quiero eliminar los caracteres de salto de palabra dos puntos (:
) de la variable$COMP_WORDBREAKS
y añadir una barra (/
) al comienzo de$COMP_WORDBREAKS
.
COMP_WORDBREAKS=" /'><=;|&("
_mytool()
{
local cur=${COMP_WORDS[COMP_CWORD]}
compopt -o nospace
# my implement here
COMPREPLY=( $(compgen ..........my_implement......... -- $cur) )
}
complete -F _mytool mytool
Sin embargo, no puedo reiniciarCOMP_WORDBREAKS
directamente porque el valor se comparte con otros scripts de finalización. En el momento en que se llama a la función de finalización, variableCOMP_WORDS
La matriz ya se ha rellenado, por lo que los cambios localesCOMP_WORDBREAKS
no tienen efecto
¿Hay alguna solución para cambiar?COMP_WORDBREAKS
en un script de finalización y sin efecto a otro script?
$ echo $BASH_VERSION
4.2.10(1)-release