Ayrıca, bash tamamlamadaki başarısızlık için aşağıdaki ek açıklamayı da ekleyeceğimi düşündüm - yorum için çok uzun ve bash tamamlama ile ilgili problemi olan biri için yararlı olabilir, çünkü muhtemelen bu 'genel' kanonik sorudur. tüm kopyalar yönlendirilir.
Eğer uygun bir çizgi var olsa bile senin .bashrcve (yukarıda cevap olduğu gibi) bash-completionya yüklüyse paketi bash tamamlama hala olabilir arıza shopt -s nullglobya shopt -s failglobda In .bashrcveya .bash_aliases.
Aşağıdaki senaryolar , uygun bash tamamlama çizgisi mevcut ve yüklü iken, adil bir test vermek için tüm kullanıcı özelleştirmeleriyle test edildi .bashrcve .bash_aliaseskaldırıldı ..bashrcbash-completion
1) İlk senaryo sizde ya da shopt -s failglobbulunduğunuz zamandır ..bashrc.bash_aliases
Sırasıyla tüm dizinleri ve dosyaları sekmeye çalışırken, bu hatalar ortaya çıkacaktır:
cd Dbash: no match: "${COMP_WORDS[@]}"
cat pabash: no match: words[0]=${!ref}${COMP_WORDS[i]}
Ancak, komutlar başarılı bir şekilde tamamlanacaktır.
2) shopt -s nullglobEtkinleştirildiğinde, bir dizini veya dosyayı tamamlamak için sekmeyi denemek, tamamlanmış bir şekilde listelenen her şeye yol açar:
cd Do
.adobe/ .gimp-2.6/ Podcasts/
.aptitude/ .gnome2/ Public/
.audacity-data/ .gnome2_private/ .pulse/
............
Buradaki listeyi kısalttım, çünkü çok uzun ve hepsini çoğaltmak gerekli değildi.
Yine, komut tamamlama yine de çalışacaktır.
Bu nedenle, sadece kendi içinde ve yüklü uygun bir çizgi olduğunu varsayarak, bash tamamlama ile hata sorununu gidermek shopt -s failglobveya shopt -s nullglobçözmek de olabilir ..bashrcbash-completion