Jak zresetować COMP_WORDBREAKS bez wpływu na inny skrypt uzupełniania?

Coś mnie mylę, gdy implementuję funkcję automatycznego uzupełniania basha, którą wprowadzę/etc/bash_completion.d/

Aby osiągnąć jakąś funkcję, chcę usunąć dwukropek znaków dzielenia wyrazów (:) ze zmiennej$COMP_WORDBREAKS i dodaj ukośnik (/) na początku$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>

Nie mogę jednak zresetowaćCOMP_WORDBREAKS bezpośrednio, ponieważ wartość jest współdzielona z innymi skryptami uzupełniania. Do czasu wywołania funkcji zakończenia, zmiennaCOMP_WORDS tablica została już wypełniona, więc lokalnie się zmieniaCOMP_WORDBREAKS nie działają.

Czy jest jakieś rozwiązanie do zmianyCOMP_WORDBREAKS w jednym skrypcie uzupełniania i nie ma wpływu na inny skrypt?

<code>$ echo $BASH_VERSION
4.2.10(1)-release
</code>

questionAnswers(1)

yourAnswerToTheQuestion