Meillo hat geschrieben: 10.01.2022 12:03:42
@JTH: Ich weiss nicht, ob du das richtig verstanden hast. Es geht und diese zwei Zeilen:
[…]
Beides Mal ist es `apt'.
Ah ja, ich hab mich primär auf diese Beobachtung bezogen:
whiizy hat geschrieben: 08.01.2022 10:37:22
Der Befehl apt-get macht hingegen die TAB-Ergänzung noch in beiden Schreibweisen.
Anscheinend ist es doch ein winziger Bug:
Die Vervollständigung schaut
in dieser Zeile
ob eins der bereits eingegebenen Wörter (=Parameter für das aufzurufende Programm) einem der Kommandos (install, remove, …) entspricht. Wenn man
apt -s eingetippt hat, ist das einzige zu vergleichende Wort das
-s. In obigem if matcht das
-s dummerweise das edit
-sources aus dem COMMANDS-Array. Damit wird im weiteren versucht, passende Optionen für das Kommando „-s“ vorzuschlagen – die es offensichtlich nicht gibt. Und die eigentlichen Kommandos werden
schließlich hier
Code: Alles auswählen
if [ "$command" = "" ]; then
COMPREPLY=( $( compgen -W '${COMMANDS[@]}' -- "$cur" ) )
fi
auch nicht mehr vorgeschlagen, weil die Variable $command nicht mehr leer ist, sondern „-s“ enthält. Das Problem könnte wegen build
-dep auch die kurze Option -d betreffen.
Möchte das jemand melden?
Eine Lösung wäre wohl,
diese faule Variante eines ist-das-Wort-im-Array-Vergleichs durch eine Schleife über alle COMMANDS-Elemente und jeweils einzelnem Vergleich zu ersetzen.