Compgen `builtin komutunu anlayın


36

Kimden help compgen:

$ help compgen
compgen: compgen [-abcdefgjksuv] [-o option]  [-A action] [-G globpat] [-W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]
    Display possible completions depending on the options.

    Intended to be used from within a shell function generating possible
    completions.  If the optional WORD argument is supplied, matches against
    WORD are generated.

    Exit Status:
    Returns success unless an invalid option is supplied or an error occurs.

Peki, seçenekler ne [-abcdefgjksuv]anlama geliyor?

Başka bir deyişle, tüm seçeneklerin nasıl kullanılacağını bilmek istiyorum.


Adam sayfasını okudun mu? man compgen. Man sayfası kabuk yerleşikleri içindir, bu nedenle aşağı kaydırmanız gerekir compgen.
garethTheRed

5
"man compgen", yok. "man bash" ı kullan
kevinf 11:15

Yanıtlar:


37

İçin seçenekler compgenkomutu ile aynıdır completedışında -pve -r. Gönderen compgenadam sayfası:

compgen
 compgen [option] [word]
 Generate possible completion matches for word according to the options, which 
 may be any option accepted by the complete builtin with the exception of -p 
 and -r, and write the matches to the standard output

Seçenekler için [abcdefgjksuv]:

  • -a takma ad anlamına gelir
  • -b Kabuk yerleşiklerinin adları
  • -c tüm komutların adları
  • -d dizinin isimleri anlamına gelir
  • -e Dışa aktarılan kabuk değişkenlerinin adları
  • -f Dosya ve fonksiyonların isimleri
  • -g grupların adları
  • -j İşin adı
  • -k Kabuk Adlarını ayrılmış kelimelerin anlamı
  • -s Servis isimleri
  • -u userAlias ​​adlarının adları
  • -v Kabuk değişkenlerinin isimleri anlamına gelir.

Tam man sayfasını burada görebilirsiniz .


@Pandya: Seçeneklerine bakın complete, ve compgenhariç aynı . -p-r
cuonglm

man bashGönderiminizi tamamlamak için kolayca okudum ve düzenlemeyi önerdim.
Pandya

1
Nasıl kullanılacağı hakkında herhangi bir bilgi compgen -G? Diyelim ki kalıp compgen -G '*.zip've "foo.zip" dosyası var. compgen foo.zip dosyasını bulacaktır, ancak kullanıcı zaten 'b' yazmışsa. Şimdi, compgen hiçbir şey bulamamalı. Emri verirseniz compgen -G '*.zip' "b", compgen hala foo.zip'i bulur
Edward Falk

@cuonglm Servis komutu tarafından sağlanan fonksiyonlar nasıl listelenir? Örneğin, service networkingsekmeyi kullanmak ve vurmak geri dönecektir force-reload reload restart start stop. Bunları nasıl kullanacağını biliyor musun compgen?
Ilia Rostovtsev

@IliaRostovtsev: buna bakınız, örneğin github.com/scop/bash-completion/blob/…
cuonglm
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.