Pomyślałem, że dodam również następujące dodatkowe wyjaśnienie niepowodzenia ukończenia bashu - jest on zbyt długi na komentarz i może być przydatny dla kogoś, kto ma problem z ukończeniem basha, ponieważ przypuszczalnie jest to „ogólne” pytanie kanoniczne, na które wszystkie duplikaty są odsyłane.
Nawet jeśli masz odpowiednią linię w swoim .bashrc
(jak w powyższej odpowiedzi) i bash-completion
pakiet jest zainstalowany, zakończenie bash może nadal działać nieprawidłowo, jeśli masz jeden shopt -s nullglob
lub shopt -s failglob
w swoim .bashrc
lub .bash_aliases
.
Poniższe scenariusze zostały przetestowane ze wszystkimi dostosowaniami użytkownika .bashrc
i .bash_aliases
usunięte, aby dać rzetelny test, z .bashrc
obecną i bash-completion
zainstalowaną odpowiednią linią zakończenia bash .
1) Pierwszy scenariusz ma miejsce shopt -s failglob
w twoim .bashrc
lub .bash_aliases
.
Podczas próby utworzenia tabulacji kompletnych katalogów i plików, odpowiednio, wystąpią następujące błędy:
cd Dbash: no match: "${COMP_WORDS[@]}"
cat pabash: no match: words[0]=${!ref}${COMP_WORDS[i]}
Jednak polecenia będą nadal wykonywane poprawnie.
2) Przy shopt -s nullglob
włączonej próbie przejścia do zakładki uzupełnia katalog lub plik, zamiast tego prowadzi do wyświetlenia wszystkiego na liście, bez zakończenia:
cd Do
.adobe/ .gimp-2.6/ Podcasts/
.aptitude/ .gnome2/ Public/
.audacity-data/ .gnome2_private/ .pulse/
............
Skróciłem tutaj listę, ponieważ była bardzo długa i nie trzeba jej wszystkiego reprodukować.
Ponownie wykonywanie poleceń będzie jednak nadal działać.
Tak więc, po prostu usuwając shopt -s failglob
lub shopt -s nullglob
mogąc rozwiązać problem błędów z ukończeniem bash, zakładając, że masz odpowiednią linię w swoim .bashrc
i bash-completion
zainstalowaną.