Probleme mit bash-completion, v.a. bei "scp", Workaround inside

Rain_Maker

Administrator
Teammitglied
Moinsen,

Vor ein paar Tagen bemerkte ich, daß die automatische Eingabevervollständigung beim Verwenden von "scp" nicht mehr so funktionierte wie gewohnt.

Nach einigem (erfolglosem) Herumprobieren und anschließender Suche im Netz wurde ich hier fündig:

https://bugzilla.opensuse.org/show_bug.cgi?id=915037

Der "Schuldige" war also ein Update des Paketes "osc", darauf wäre ich (oder genauer bin ich, siehe "erfolgloses Herumprobieren" weiter vorne) nie gekommen.

Kurzfassung, wie man das Problem erkennen und beheben kann:

1) osc vorhanden?

Code:
rpm -q osc
osc-0.150.1-2.20.1.noarch
Wer kein osc installiert hat, ist logischerweise nicht betroffen.

2) Inhalt der Variable COMP_WORDBREAKS?

Code:
echo $COMP_WORDBREAKS 
"'><=;|&(:
Die Variable enthält das Zeichen ":" (meist am Ende) => nicht betroffen

Code:
echo $COMP_WORDBREAKS 
"'><=;|&(
Kein ":" in der Variable => betroffen

3) Workaround:

Code:
cat /etc/bash_completion.d/osc.sh 
test -z "$BASH_VERSION" && return
complete -o default _nullcommand >/dev/null 2>&1 || return
complete -r _nullcommand >/dev/null 2>&1         || return
COMP_WORDBREAKS="${COMP_WORDBREAKS//:}"
test -s /usr/share/osc/complete && complete -o default -C /usr/share/osc/complete osc
test -s /usr/lib64/osc/complete && complete -o default -C /usr/lib64/osc/complete osc
test -s /usr/lib/osc/complete   && complete -o default -C /usr/lib/osc/complete osc
Die Zeile "COMP_WORDBREAKS="${COMP_WORDBREAKS//:}" einkommentieren, also

Code:
cat /etc/bash_completion.d/osc.sh 
test -z "$BASH_VERSION" && return
complete -o default _nullcommand >/dev/null 2>&1 || return
complete -r _nullcommand >/dev/null 2>&1 || return
#COMP_WORDBREAKS="${COMP_WORDBREAKS//:}"
test -s /usr/share/osc/complete && complete -o default -C /usr/share/osc/complete osc
test -s /usr/lib64/osc/complete && complete -o default -C /usr/lib64/osc/complete osc
test -s /usr/lib/osc/complete && complete -o default -C /usr/lib/osc/complete osc
Nach Ab- und Anmelden sollte das alte Verhalten wieder da sein und die bash-completion z.B. bei scp wieder wie gewohnt funktionieren.

Haken an der Sache:

So lange die Datei "/etc/bash_completion.d/osc.sh" nicht im Paket selbst gefixt wird, wird diese Änderung bei jedem Update des Pakets "osc" wieder überschrieben, die eigentliche Lösung des Problems müssen also die Paketmaintainer in Angriff nehmen.

Stay tuned ...

Greetz,

RM
 
Oben