To zależy od tego, co ustawisz jako domyślną powłokę (logowania) dla systemu, dla terminala, dla iTerm. Zaktualizowany bash
zainstalowany i ustawiony na wykonanie w jednym z nich daje różne wyniki.
Ten błąd pochodzi z tak zwanego pliku z kropką, który zainstalowałeś. Są to pliki z kropką na początku (stąd nazwa), np. .bashrc
. Oznacza to, że są niewidoczne dla Findera i prostego ls
.
Pliki kropek, o których mowa, są odczytywane przez powłokę podczas jej uruchamiania. Zawierają instrukcje, ustawienia, dostosowania; może małe fragmenty kodu programu.
Nie wszystkie pliki z kropkami w katalogu domowym użytkownika są odczytywane przez powłokę.
Te czytane przez basha mogą obejmować:
.bash_history
.bash_profile
.bash_prompt
.bash_sessions
.bashrc
.editorconfig
.exports
.functions
.inputrc
.profile
(ta lista nie jest wyczerpująca)
Te pliki mogły zostać utworzone przez Ciebie, przez Ciebie manipulowane lub przez określone programy, takie jak fink, homebrew lub porty.
Być może właśnie skopiowałeś je z sieci, aby "zaktualizować" / spersonalizować swoją powłokę.
Niezależnie od tego, jak doszedłeś do obecnej sytuacji. Otwórz swój Terminal / iTerm od innego użytkownika, a objawy prawdopodobnie nie będą obserwowane.
To znaczy: wszystkie te pliki są w pewnym sensie „bezpieczne do usunięcia”: w tym sensie, że nie są niezbędne do działania terminala lub powłoki. Zrób ich kopię zapasową na wypadek, gdyby rzeczywiście zawierały spersonalizowane ustawienia, na których możesz polegać w codziennej pracy. Przykłady tego obejmują dodatki do zmiennych $ PATH
. Bez nich programy takie jak fink mogą już nie działać.
Jednak faktyczny opublikowany komunikat o błędzie wskazuje na dwie rzeczy:
-
Połączona zawartość twoich plików z kropkami nie zadziałała, aby osiągnąć to, co powinny. Dokładniej: wywołano instrukcję (compdef), która nie jest dostępna.
-
Że najprawdopodobniej masz zbiór plików dot-plików ze źródła w sieci, takiego jak holman-dotfiles.
Obejmowały one błąd, który miał dokładnie ten sam komunikat o błędzie.
Dlatego powinieneś przejrzeć wszystkie pliki z kropkami dla bieżącego użytkownika i zachować tylko te rzeczy, które rozpoznasz jako konieczne (pamiętaj o kopiach zapasowych).Następnie możesz ponownie użyć zaktualizowanych plików ze źródła.Należy jednak pamiętać, że są one dość „wyczerpujące”.Rozsądnie byłoby nie używać ich wszystkich na ślepo i faktycznie przetestować i wybrać podzbiór wszystkich tych opcji.
Korzystanie z nich wszystkich na ślepo lub bez rozróżnienia może prowadzić nie tylko do problemów, takich jak ten, który powoduje to pytanie, ale także podczas stosowania innych instrukcji lub porad dotyczących rozwiązywania problemów.
Aktualizacja:
Tej odpowiedzi udzielono poprzedniej wersji pytania, która nie wskazywała zsh jako używanej powłoki.-> Zastąp zsh w miejscu, w którym czytałeś bash powyżej.