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

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

      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:

      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?

      Quellcode

      1. rpm -q osc
      2. osc-0.150.1-2.20.1.noarch


      Wer kein osc installiert hat, ist logischerweise nicht betroffen.

      2) Inhalt der Variable COMP_WORDBREAKS?

      Quellcode

      1. echo $COMP_WORDBREAKS
      2. "'><=;|&(:


      Die Variable enthält das Zeichen ":" (meist am Ende) => nicht betroffen

      Quellcode

      1. echo $COMP_WORDBREAKS
      2. "'><=;|&(


      Kein ":" in der Variable => betroffen

      3) Workaround:

      Quellcode

      1. cat /etc/bash_completion.d/osc.sh
      2. test -z "$BASH_VERSION" && return
      3. complete -o default _nullcommand >/dev/null 2>&1 || return
      4. complete -r _nullcommand >/dev/null 2>&1 || return
      5. COMP_WORDBREAKS="${COMP_WORDBREAKS//:}"
      6. test -s /usr/share/osc/complete && complete -o default -C /usr/share/osc/complete osc
      7. test -s /usr/lib64/osc/complete && complete -o default -C /usr/lib64/osc/complete osc
      8. test -s /usr/lib/osc/complete && complete -o default -C /usr/lib/osc/complete osc


      Die Zeile "COMP_WORDBREAKS="${COMP_WORDBREAKS//:}" einkommentieren, also

      Quellcode

      1. cat /etc/bash_completion.d/osc.sh
      2. test -z "$BASH_VERSION" && return
      3. complete -o default _nullcommand >/dev/null 2>&1 || return
      4. complete -r _nullcommand >/dev/null 2>&1 || return
      5. #COMP_WORDBREAKS="${COMP_WORDBREAKS//:}"
      6. test -s /usr/share/osc/complete && complete -o default -C /usr/share/osc/complete osc
      7. test -s /usr/lib64/osc/complete && complete -o default -C /usr/lib64/osc/complete osc
      8. 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
      "Programming today is a race between software engineers striving to build better & bigger idiot-proof programs and the Universe trying to produce bigger & better idiots. So far, the Universe is winning." (Rick Cook)

      Dies ist ein _öffentliches_ Supportforum, keinerlei Support per PN, EMail oder Instant Messenger.

      openSUSE Leap 42.3 - Kernel 5.0.x - fluxbox 1.3.7

      Bitmessage: BM-2D8h8QZmvHfgbixWeiG1NDZHG1iXAhBz8K
    1