Wie kann COMP_WORDBREAKS zurückgesetzt werden, ohne ein anderes Abschlussskript zu beeinflussen?
Es gibt etwas, das mich verwirrt, wenn ich eine Bash-Autovervollständigungsfunktion implementiere, in die ich sie einfügen werde/etc/bash_completion.d/
Um eine Funktion zu erreichen, möchte ich das Wort Umbruch Zeichen Doppelpunkt entfernen (:
) aus Variable$COMP_WORDBREAKS
und einen Schrägstrich hinzufügen (/
) am Anfang von$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>
Ich kann jedoch nicht zurücksetzenCOMP_WORDBREAKS
direkt, weil der Wert mit anderen Abschlussskripten geteilt wird. Zu dem Zeitpunkt, an dem die Vervollständigungsfunktion aufgerufen wird, ist sie variabelCOMP_WORDS
Array wurde bereits gefüllt, also lokal geändertCOMP_WORDBREAKS
haben keine Wirkung.
Gibt es eine Lösung für den WechselCOMP_WORDBREAKS
In einem Abschlussskript und ohne Auswirkung auf ein anderes Skript?
<code>$ echo $BASH_VERSION 4.2.10(1)-release </code>