Como redefinir COMP_WORDBREAKS sem afetar outro script de conclusão?
Há algo me confundir quando eu implementar uma função de auto-conclusão bash que eu vou colocá-lo em/etc/bash_completion.d/
Para conseguir algum recurso, eu quero remover os caracteres de quebra de palavra:
) da variável$COMP_WORDBREAKS
e adicione uma barra (/
) no início 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>
No entanto, não consigo redefinirCOMP_WORDBREAKS
diretamente porque o valor é compartilhado com outros scripts de conclusão. No momento em que a função de conclusão é chamada, variávelCOMP_WORDS
array já foi preenchido, então muda localmenteCOMP_WORDBREAKS
não tem efeito.
Existe alguma solução para mudarCOMP_WORDBREAKS
em um script de conclusão e nenhum efeito para outro script?
<code>$ echo $BASH_VERSION 4.2.10(1)-release </code>