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>