Pembaruan pada 2013: Sebagian besar penyelesaian-bash ditulis ulang untuk melengkapi secara otomatis hanya bila diperlukan. Naskah intinya jauh lebih tinggi sekarang.
Script penyelesaian kadang-kadang bisa sangat besar dalam standar skrip shell. Pada satu server saya memiliki akses, hampir 1700 baris (57 KB) dan itu hanya skrip inti . Di /etc/bash_completion.d
ada ~ 200 skrip tambahan untuk berbagai perintah lainnya ( openssl
, mutt
, mount
...) sebesar 25.537 baris atau 1,2 MB. Setiap skrip, ketika bersumber, memeriksa apakah suatu perintah benar-benar tersedia sebelum mendefinisikan penangan penyelesaian; ~ 330 kali dalam kasus ini, masing-masing melibatkan memeriksa $PATH
file yang dapat dieksekusi dengan nama yang diberikan. (Meskipun saya berharap /usr/bin
akan di-cache dalam memori ...)
Memang, bahkan itu hanya membutuhkan setengah detik untuk memuat, bukan dua detik penuh. Tapi itu mungkin setidaknya bagian dari masalah. Jalankan du -hs /etc/bash_completion*
atau wc -l /etc/bash_completion{,.d/*} | grep total
jika Anda ingin memeriksa.
Anda dapat mencoba sumber skrip secara manual, dalam mode "jejak":
set -x
. /etc/bash_completion
Anda akan melihat setiap baris saat dijalankan. Jika ada perintah tertentu yang membutuhkan waktu lama, Anda harus memperhatikannya.
( set +x
menonaktifkan mode jejak.)