2011-04-21 18 views
5

Arka planda Bash işlemlerini yürütmesine izin veren bir komut dosyası var, ben buna "destek" adını verdim. Programlar Ben böyle diyoruz arka planda çalışmasına istiyorum:Özel bir komutla gönderilen tüm komutlar için Bash Tamamlamasının Korunması

backy long-running-script param1 param2 

sorun şimdi başka senaryoyu prepend eğer long-running-script için Bash tamamlanmak gevşek olmasıdır.

long-running-script için yalnızca Bash tamamlanmasını ve tüm parametreleri, aynı zamanda backy ile çağırmak istediğim diğer tüm komut dosyalarını da koruyan bir Bash tamamlama dosyası yazmak istiyorum.

Bash tamamlamayla ilgili bazı deneyimlerim var, ancak Bash tamamlama komut dosyasına ekleyebileceğim komutu, yalnızca çağrılacak olan komut dosyasının tamamlanmasıyla tamamlayabilmem için eksik olan komutu özlüyorum. Herhangi bir fikir? Bugüne kadar

Benim tamamlama:

have backy && 
_backy_complete() 
{ 
    local cur prev goals 

    COMPREPLY=() 
    cur=${COMP_WORDS[COMP_CWORD]} 

    # How to get the completion from the script that is the param for backy, 
    # in a generic way? 
    COMPREPLY=(?????) 
    return 0 
} && 
complete -F _backy_complete backy 

DÜZENLEME - ÇÖZÜM:

complete -F _command backy 
: Lekensteyn için

sayesinde, sadece bu hat ile benim mevcut bash tamamlama script içeriği değiştirilir

+0

Sorunun yanıtını doğrudan sorunun alt kısmında göründüğü için, sorunuza çözüm eklemeniz gerekmez. – Lekensteyn

cevap

4

Bu tür durumlar için bir bash_completion işlevi zaten var:

complete -F _command backy 

sudo, fakeroot ve diğerlerinden sonra komutların otomatik olarak tamamlanması için kullanılır. Backy'ye gönderilen herhangi bir argüman şu şekilde göz ardı edilir:

İlgili konular