Bagaimana Bash di Ubuntu mengetahui daftar tindakan khusus alat?
Sebagai contoh jika saya mengetikkan apt-get dan tab dua kali saya hanya melihat hapus, perbarui, perbarui ... dll, tetapi bukan tindakan untuk perintah lain atau file dalam direktori saat ini.
Saya sedang mengembangkan alat baris perintah di Go dan ingin menyediakan fitur ini untuk distro yang mendukungnya.
bash
ubuntu
autocomplete
Diubah Rustom
sumber
sumber
Jawaban:
Ini dilakukan dengan menggunakan fitur penyelesaian bash v4. Kode penyelesaian untuk
apt-get
disediakan olehbash-completion
paket dan terletak di/usr/share/bash-completion/completions/apt-get
. Aplikasi yang memiliki penyelesaian dan bukan bagian daribash-completion
paket dasar menempatkan skrip penyelesaiannya/etc/bash_completion.d
.Penyelesaian dimuat melalui sumber
/etc/bash_completion
. Tepat di mana ini dilakukan akan bervariasi tergantung pada versi Debian atau Ubuntu. Itu pada gilirannya akan sumber segala sesuatu di/usr/share/bash-completion/completions
dan/etc/bash_completion.d
.sumber