GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana Cara Menentukan Pelengkapan Otomatis Khusus Untuk Perintah Tertentu?

Apakah ada cara agar bash tahu persis apa yang harus ditampilkan ketika Anda tab ganda? Misalnya saya memiliki skrip python scpy yang membutuhkan beberapa argumen. Misalnya seperti apt-get , jika Anda memberi tab ganda kepada Anda

autoclean        build-dep        clean            dselect-upgrade  purge            source           upgrade
autoremove       check            dist-upgrade     install          remove           update  

Apakah ada cara untuk melakukannya untuk skrip/program Anda sendiri? Apakah saya perlu membungkus skrip python saya dalam skrip bash?

Jawaban yang Diterima:

Cara termudah untuk melakukannya adalah dengan memasukkan skrip shell di /etc/bash_completion.d/ . Struktur dasar file ini adalah fungsi sederhana yang melakukan penyelesaian dan kemudian pemanggilan complete yang merupakan bash bawaan. Daripada membahas detail tentang cara menggunakan complete , saya sarankan Anda membaca Pengantar Penyelesaian Bash. Bagian 1 membahas dasar-dasar dan Bagian 2 membahas cara Anda menulis skrip penyelesaian.

Deskripsi penyelesaian bash yang lebih padat dapat ditemukan di bagian “Penyelesaian Programmable” dari man bash (Anda dapat mengetik “/Programmable Completion” lalu tekan ‘n’ beberapa kali untuk sampai ke sana dengan cepat. Atau, jika Anda beruntung, “g 2140 RETURN”).


Linux
  1. Cara Menghapus Perintah Tertentu Dari Riwayat Bash Di Linux

  2. Bagaimana menjalankan perintah bash Linux dalam skrip PERL?

  3. Bagaimana Cara Mendapatkan Penyelesaian Bash Untuk Alias ​​​​Perintah?

  1. Pelengkapan Otomatis Zsh Dinamis Untuk Perintah Kustom?

  2. Bagaimana Cara Menonaktifkan Alias ​​​​Di Bash Untuk Satu Perintah??

  3. Cara menonaktifkan perintah khusus untuk pengguna tertentu di Linux

  1. Di Linux, bagaimana cara mendapatkan halaman manual untuk fungsi C daripada untuk perintah bash?

  2. Cara mengatur jalur untuk perintah sudo

  3. Bagaimana cara membuat perintah khusus di Unix/Linux?