Penyelesaian yang dapat diprogram Bash bekerja dengan menguraikan baris perintah dan mencari tahu apa yang sedang diselesaikan:
- Beberapa konteks diperlakukan secara khusus, misalnya kata pertama dalam suatu perintah diselesaikan sebagai nama perintah, yang mengikuti a
$
diselesaikan sebagai nama variabel, dll.
- Di luar konteks ini, bash mencoba untuk menyelesaikan argumen dari suatu perintah, dan pengaturan untuk perintah atau kegagalan itu (yang biasanya merupakan kasus) untuk nama merek dari perintah tersebut diterapkan.
Misalnya, setelah , bash melengkapi nama perintah yang dimulai dengan . Setelah , bash melengkapi nama variabel yang dimulai dengan . Setelah , bash menerapkan aturan penyelesaian untuk perintah . Aturan penyempurnaan dapat menentukan kategori (pengguna, variabel, file, dll.), Pola karakter pengganti untuk nama file, atau fungsi atau potongan kode untuk dieksekusi.sqllTab
sqll
sqlldr $aTab
a
sqlldr Tab
sqlldr
Aturan penyelesaian didefinisikan oleh complete
builtin. Bash tidak melacak kapan complete
builtin dipanggil atau skrip apa (jika ada). Sebagian besar distribusi mengirimkan paket bash-completion , yang menyediakan serangkaian aturan untuk perintah umum. Ini mengambil bentuk serangkaian file skrip yang berisi panggilan complete
, dengan skrip yang harus dibaca dari .bashrc
(atau /etc/bash.bashrc
jika diterapkan) untuk memuat semua skrip ini: biasanya . /etc/bash_completion
diperlukan untuk mengaktifkan penyelesaian yang dapat diprogram dan memuat skrip yang tersedia.
Paket standar tidak termasuk dukungan untuk sqlldr
. Jika Anda memiliki dukungan seperti itu, itu harus berasal dari sumber yang berbeda. Sumber ini mungkin telah menjatuhkan file dalam direktori seperti /etc/bash_completion.d
atau mungkin telah datang dengan instruksi untuk memasukkan beberapa kode dalam file Anda .bashrc
. Anda dapat menggunakan complete -p sqlldr
untuk melihat aturan saat ini untuk sqlldr
; seperti yang disebutkan sebelumnya, ini tidak akan memberi tahu Anda dari mana aturan itu diambil.
Tcsh, zsh dan ikan memiliki mekanisme yang agak mirip (semua orang mendapat inspirasi dari tcsh) tetapi builtin, sintaksis dan kemampuan yang berbeda.
/etc/bash_completion.d
. Lihat juga/etc/bash_completion
dan lihat output dariset
, seberapa banyak lingkungan Anda tumbuh.