2014-04-19 27 views
0

我想寫我自己的自動完成。但參數應該是沒有破折號自己的bash完成沒有破折號?

這裏面臨入店是我目前的工作示例

# /etc/bash_completion.d/radio 
_radio() 
{ 
    local cur prev opts 
    COMPREPLY=() 
    cur="${COMP_WORDS[COMP_CWORD]}" 
    prev="${COMP_WORDS[COMP_CWORD-1]}" 
    opts="--foo --bar --baz" 


    if [[ ${cur} == -* ]] ; then 
     COMPREPLY=($(compgen -W "${opts}" -- ${cur})) 
     return 0 
    fi 
} 
complete -F _radio radio 

我有什麼改變,使其能工作沒有破折號?

回答

0

如果我理解正確的話,你希望你的命令,以避免類似:

$ radio <tab><tab> 
bar baz foo 

如果是這樣,剛剛擺脫了短線的。

這裏是你的腳本修改,認爲它應該工作:

# /etc/bash_completion.d/radio 
_radio() 
{ 
    local cur prev opts 
    COMPREPLY=() 
    cur="${COMP_WORDS[COMP_CWORD]}" 
    prev="${COMP_WORDS[COMP_CWORD-1]}" 
    opts="foo bar baz" 


    COMPREPLY=($(compgen -W "${opts}" -- ${cur})) 
    return 0 
} 
complete -F _radio radio