Dies hängt davon ab, was Sie als Standard- (Anmelde-) Shell für das System, für Terminal und für iTerm festgelegt haben. Aktualisierte bash
installiert und so eingestellt, dass sie in einem von ihnen ausgeführt werden, führen zu unterschiedlichen Ergebnissen.
Dieser Fehler stammt von einer sogenannten Punktdatei, die Sie installiert haben. Dies sind Dateien mit einem Punkt vor (daher der Name) wie .bashrc
. Das heißt, sie sind für den Finder und für einen einfachen ls
unsichtbar.
Die betreffenden Punktedateien werden beim Start von Ihrer Shell gelesen. Sie enthalten Anweisungen, Einstellungen, Anpassungen; vielleicht kleine Ausschnitte aus dem Programmcode.
Nicht alle Punktdateien im Home-Verzeichnis Ihres Benutzers werden von der Shell gelesen.
Diejenigen, die von Bash gelesen werden, können sein:
.bash_history
.bash_profile
.bash_prompt
.bash_sessions
.bashrc
.editorconfig
.exports
.funktionen
.inputrc
.profile
(Diese Liste ist nicht vollständig)
Diese Dateien wurden möglicherweise von Ihnen erstellt, von Ihnen oder bestimmten Programmen wie Fink, Homebrew oder Ports bearbeitet.
Möglicherweise haben Sie diese gerade aus dem Internet kopiert, um Ihre Shell zu "aktualisieren" / zu personalisieren.
Unabhängig davon, wie Sie zur aktuellen Situation gekommen sind. Öffnen Sie Ihr Terminal / iTerm von einem anderen Benutzer und die Symptome werden wahrscheinlich nicht beobachtet.
Das bedeutet: Alle diese Dateien sind in gewisser Weise "sicher zu löschen": in dem Sinne, dass sie für die Ausführung Ihres Terminals oder Ihrer Shell nicht unbedingt erforderlich sind. Erstellen Sie eine Sicherungskopie dieser Einstellungen, falls sie tatsächlich personalisierte Einstellungen enthalten, auf die Sie bei Ihrer täglichen Arbeit angewiesen sein können. Beispiele hierfür sind Ergänzungen zu Ihren Variablen $ PATH
. Ohne diese funktionieren Programme wie fink möglicherweise nicht mehr.
Die tatsächliche Fehlermeldung, die Sie veröffentlicht haben, weist jedoch auf zwei Dinge hin:
-
Der kombinierte Inhalt Ihrer Punktedateien hat nicht funktioniert, um das zu erreichen, was sie tun sollten. Genauer gesagt: Eine Anweisung (compdef) wurde aufgerufen und ist nicht verfügbar.
-
Dass Sie höchstwahrscheinlich eine Reihe von Punktedateien aus einer Quelle im Internet wie holman-dotfiles bezogen haben.
Dazu gehörte ein Fehler mit genau der gleichen Fehlermeldung.
Sie sollten also alle Punktedateien für Ihren aktuellen Benutzer durchsuchen und nur die Dinge behalten, die Sie als notwendig erkennen (denken Sie an die Backups).Dann können Sie die aktualisierten Dateien aus Ihrer Quelle erneut verwenden.Aber denken Sie daran, dass diese ziemlich "umfassend" sind.Es wäre ratsam, sie nicht alle blind zu verwenden und tatsächlich eine Teilmenge all dieser Optionen zu testen und auszuwählen.
Wenn Sie alle blind oder wahllos verwenden, kann dies nicht nur zu Problemen wie dem führen, das diese Frage aufwirft, sondern auch, wenn Sie andere Anleitungen oder Ratschläge zur Fehlerbehebung befolgen.
Update:
Diese Antwort wurde auf eine frühere Version der Frage gegeben, in der zsh nicht als verwendete Shell angegeben wurde.-> Ersetzen Sie zsh durch Bash oben.