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 .bashrc
ve (yukarıda cevap olduğu gibi) bash-completion
ya yüklüyse paketi bash tamamlama hala olabilir arıza shopt -s nullglob
ya shopt -s failglob
da In .bashrc
veya .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 .bashrc
ve .bash_aliases
kaldırıldı ..bashrc
bash-completion
1) İlk senaryo sizde ya da shopt -s failglob
bulunduğ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 nullglob
Etkinleş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 failglob
veya shopt -s nullglob
çözmek de olabilir ..bashrc
bash-completion