Bash-Vervollständigungen gebrochen


1

Ich verwende die folgenden Bash-Vervollständigungen, die über brew installiert wurden:

bash-completion
bash-completion@2

Mein .bashrc sieht so aus:

if [ -f /usr/local/share/bash-completion/bash_completion ]; then
. /usr/local/share/bash-completion/bash_completion
fi


if [ -f /usr/local/Cellar/bash-completion/1.3_2/etc/bash_completion ]; then
  BASH_COMPLETION=/usr/local/Cellar/bash-completion/1.3_2/etc/bash_completion
  . /usr/local/Cellar/bash-completion/1.3_2/etc/bash_completion
fi

Das Problem ist, wenn ich bei einer leeren Eingabeaufforderung auf der Tastatur die Tabulatortaste drücke, wird folgende Fehlermeldung angezeigt:

-bash: words: bad array subscript

Nach dem Beheben /usr/local/share/bash-completion/bash_completionvon .bashrcFehlern kommt es nicht vor, aber ich verpasse viele Abschlüsse.

Was ist das Problem hier? Wie kann ich es reparieren?

Antworten:


2

Die Lösung ist, dass ich die Bash-Vervollständigung von 1.3.2 vorher aufrufen sollte bash-completion@2. Das Folgende ist, wie ich .bashrcaussehe, und das löst das Problem:

if [ -f /usr/local/Cellar/bash-completion/1.3_2/etc/bash_completion ]; then
  BASH_COMPLETION=/usr/local/Cellar/bash-completion/1.3_2/etc/bash_completion
  . /usr/local/Cellar/bash-completion/1.3_2/etc/bash_completion
fi

if [ -f /usr/local/share/bash-completion/bash_completion ]; then
    . /usr/local/share/bash-completion/bash_completion
fi
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.