Saya menulis skrip Bash untuk membantu saya mengelola beberapa symlink. Ini adalah pembungkus beberapa perintah Stow .
Ketika saya memintanya, saya memberikannya dua argumen baris perintah: perintah ( plug
/ unplug
/ replug
) dan nama direktori (hanya nama dasarnya, bukan jalur).
Script disebut vlink
, jadi doa akan, misalnya:
vlink plug foo
Nama direktori ( foo
dalam contoh di atas) perlu menjadi salah satu subdirektori dari direktori tertentu di tempat lain di sistem saya.
Karena hanya ada tiga perintah yang mungkin ( plug
/ unplug
/ replug
) dan satu set spesifik nama direktori yang mungkin untuk argumen ketiga, saya ingin memberikan beberapa penyelesaian tab untuk itu.
Saya agak terbiasa dengan menulis skrip penyelesaian Bash, tetapi apakah ada cara untuk memberikan perintah penyelesaian untuk executable yang tidak ada dalam $ PATH saya dan hanya dimaksudkan untuk dijalankan dari direktori induknya?
sumber
complete -F <function-name> <command-name>
, seperti pada contoh di atas. Penyelesaian terdaftar ke nama perintah, bukan ke jalur, jadi tergantung pada apa yang Anda maksud dengan "global", ini hanya dapat dilakukan secara global (untuk semua perintah dengan nama yang sama)