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-completionpakiet jest zainstalowany, zakończenie bash może nadal działać nieprawidłowo, jeśli masz jeden shopt -s nullgloblub shopt -s failglobw swoim .bashrclub .bash_aliases.
Poniższe scenariusze zostały przetestowane ze wszystkimi dostosowaniami użytkownika .bashrci .bash_aliasesusunięte, aby dać rzetelny test, z .bashrcobecną i bash-completionzainstalowaną odpowiednią linią zakończenia bash .
1) Pierwszy scenariusz ma miejsce shopt -s failglobw twoim .bashrclub .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 nullglobwłą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 failgloblub shopt -s nullglobmogąc rozwiązać problem błędów z ukończeniem bash, zakładając, że masz odpowiednią linię w swoim .bashrci bash-completionzainstalowaną.