Saya pikir saya juga akan menambahkan penjelasan tambahan berikut untuk kegagalan penyelesaian bash - terlalu lama untuk komentar dan mungkin berguna bagi seseorang yang memiliki masalah dengan penyelesaian bash, karena mungkin ini adalah pertanyaan kanonik 'umum' yang semua duplikat disebut.
Bahkan jika Anda memiliki baris yang sesuai di .bashrc(seperti pada jawaban di atas) dan bash-completionpaket yang diinstal, penyelesaian bash masih dapat mengalami kegagalan fungsi jika Anda memiliki shopt -s nullglobatau shopt -s failglobdi dalam .bashrcatau .bash_aliases.
Skenario berikut diuji dengan semua kustomisasi pengguna .bashrcdan .bash_aliasesdihapus untuk memberikan tes yang adil, dengan garis penyelesaian bash yang sesuai pada .bashrcsaat ini dan dengan yang bash-completiondiinstal.
1) Skenario pertama adalah ketika Anda memiliki shopt -s failglobdi .bashrcatau .bash_aliases.
Ketika mencoba masing-masing direktori dan file lengkap tab, kesalahan ini akan terjadi:
cd Dbash: no match: "${COMP_WORDS[@]}"
cat pabash: no match: words[0]=${!ref}${COMP_WORDS[i]}
Namun, perintah akan tetap berhasil diselesaikan.
2) Dengan shopt -s nullglobdiaktifkan, mencoba tab untuk menyelesaikan direktori atau file sebagai gantinya akan mengarah ke semua yang terdaftar, tanpa penyelesaian:
cd Do
.adobe/ .gimp-2.6/ Podcasts/
.aptitude/ .gnome2/ Public/
.audacity-data/ .gnome2_private/ .pulse/
............
Saya telah memotong daftar di sini, karena itu sangat panjang dan tidak perlu mereproduksi semuanya.
Sekali lagi, penyelesaian perintah masih akan berfungsi.
Jadi, hanya menghapus shopt -s failglobatau shopt -s nullglobjuga bisa menyelesaikan masalah kesalahan dengan selesai bash, dengan asumsi bahwa Anda memiliki garis yang sesuai di Anda .bashrcdan bash-completiondiinstal.