¿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
.
<code>COMP_WORDBREAKS=" /'><=;|&(" _mytool() { local cur=${COMP_WORDS[COMP_CWORD]} compopt -o nospace # my implement here COMPREPLY=( $(compgen ..........my_implement......... -- $cur) ) } complete -F _mytool mytool </code>
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?
<code>$ echo $BASH_VERSION 4.2.10(1)-release </code>