¿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>

Respuestas a la pregunta(1)

Su respuesta a la pregunta