GNU/Linux >> Belajar Linux >  >> Linux

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

Saya mencari penyelesaian tab pada alias baris perintah saya, misalnya, katakanlah saya mendefinisikan alias berikut:

alias apt-inst='sudo aptitude install'

Apakah ada cara untuk mendapatkan penyelesaian yang disediakan oleh aptitude ketika saya menekan tombol tab? yaitu ketika saya menulis 'Sudo aptitude install gnumer' dan tekan tab, aptitude menyelesaikan ini ke gnumeric, atau jika ada ketidakpastian daftar semua paket yang tersedia dimulai dengan gnumer. Jika saya melakukannya menggunakan alias saya, tidak ada – tidak ada penyelesaian.

Jawaban yang Diterima:

Ada utas hebat tentang ini di forum Ubuntu. Ole J mengusulkan fungsi definisi penyelesaian alias berikut:

function make-completion-wrapper () {
  local function_name="$2"
  local arg_count=$(($#-3))
  local comp_function_name="$1"
  shift 2
  local function="
    function $function_name {
      ((COMP_CWORD+=$arg_count))
      COMP_WORDS=( "[email protected]" ${COMP_WORDS[@]:1} )
      "$comp_function_name"
      return 0
    }"
  eval "$function"
  echo $function_name
  echo "$function"
}

Gunakan untuk mendefinisikan fungsi pelengkap alias Anda, lalu tentukan fungsi itu sebagai pelengkap alias:

make-completion-wrapper _apt_get _apt_get_install apt-get install
complete -F _apt_get_install apt-inst

Saya lebih suka menggunakan alias untuk menambahkan argumen yang selalu digunakan ke program yang ada. Misalnya, dengan grep , saya selalu ingin melewatkan perangkat dan file biner, jadi saya membuat alias untuk grep . Untuk menambahkan perintah baru seperti grepbin , saya menggunakan skrip shell di ~/bin . saya map. Jika folder itu ada di jalur Anda, folder itu akan dilengkapi secara otomatis.


Linux
  1. Cara Menghapus Riwayat Bash di Linux

  2. Bagaimana Cara Menentukan Pelengkapan Otomatis Khusus Untuk Perintah Tertentu?

  3. Cara membuat perintah alias berfungsi di skrip bash atau file bashrc

  1. Cara menonaktifkan pengeditan riwayat saya di bash

  2. C++11:Bagaimana cara membuat alias suatu fungsi?

  3. cara menggunakan $1 dengan benar dalam sebuah alias dengan dua argumen

  1. 10 alias Bash yang berguna untuk Linux

  2. Dua kegunaan hebat untuk perintah cp:pintasan Bash

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