Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

Autovervollständigung der Bash ist kaputt (Fehlermeldung)

Alles rund um die verschiedenen Konsolen und shells sowie die Programmierung unter Linux

Moderator: Moderatoren

Antworten
Benutzeravatar
teetasse
Newbie
Newbie
Beiträge: 46
Registriert: 18. Nov 2006, 22:23

Autovervollständigung der Bash ist kaputt (Fehlermeldung)

Beitrag von teetasse » 2. Jun 2019, 15:10

Hallo,

auf meinem Laptop ist die Autovervollständigung der Bash kaputt, allerdings nicht bei jedem Befehl. Am Beispiel der Datei .xinitrc:

- vi ODER kate ODER oowriter .xi <Tabulator-Taste> ==> Fehlermeldung

Code: Alles auswählen

bash: command substitution: Zeile 21: Syntaxfehler beim unerwarteten Wort `}'
bash: command substitution: Zeile 21: `        }'
- ls ODER cp .xi <Tabulator-Taste> ==> funktioniert. Das .xi wird zu .xinitrc ergänzt.

In welcher Datei kann dieser Fehler stecken?
openSUSE Leap 15.0

Werbung:
Benutzeravatar
Heinz-Peter
Guru
Guru
Beiträge: 2046
Registriert: 24. Okt 2005, 14:04

Re: Autovervollständigung der Bash ist kaputt (Fehlermeldung)

Beitrag von Heinz-Peter » 2. Jun 2019, 20:54

Versteckte Dateien (Dateien die mit einem Punkt anfangen) oder Dateien mit einem Leerzeichen werden in Anführungszeichen ( ".dateiname") gesetzt.
Wir müssen lernen, entweder als Brüder miteinander zu leben oder als Narren unterzugehen.
Mein Betriebssystem: Suse 42.2/42.3, Prozessor: Pentium 4 550 (3,40 GHz, FSB800, Hyper-Threading), Grafikkarte: Nvidia Geforce 6610XL (PCIe)/128MByte.

Benutzeravatar
robi
Moderator
Moderator
Beiträge: 3169
Registriert: 25. Aug 2004, 02:13

Re: Autovervollständigung der Bash ist kaputt (Fehlermeldung)

Beitrag von robi » 2. Jun 2019, 21:46

Ich bin mir nicht sicher ob es sich hier nicht wirklich um einen Fehler irgendwo in der Konfiguration der bash-completion handelt.
Vervollständigung von vi auf Versteckte Dateien funktioniert bei mir zB ganz normal auch ohne das ich das in Anführungszeichen setze.

* Verzeichnis /usr/share/bash-completion/ dort sollten alle Dateien ein einheitliches Anderungsdatum haben.
Kommen entweder aus Paket util-linux oder bash-completion oder ähnliches, je nach Distribution.

* Verzeichnis /etc/bash_completion/ falls alternativ vorhanden, das gleiche.

* Verzeichnis /etc/bash_completion.d/ falls vorhanden, hier legen einige Tools bei der Installation ebenfalls solche Dateien ab.

Du kannst auch mal in der Konfiguration der aktuellen Bash suchen.
set | less # und dann dort nach Abschnitten suchen in denen der Befehl "complete" vorkommt.

Suchen müsstest du wohl nach unausgeglichenen Geschweiften Klammern, falschen Kommentaren und abgeschnittenen Dateien, insbesondere bei Kommand-Substitutionen. Sieht mir so aus als ob dort ein "{" fehlt, oder irgendwie auskommentiert oder anders ungültig gemacht worden ist.
Kann aber in solchen Scripten auch immer passieren das nicht der wirkliche Fehler angezeigt wird, sondern erst ein Folgefehler.

robi

Antworten