2011-04-13 2 views
1

간단한 bash 함수를 만들었습니다. http://shr.im/ionyse-notify기존 완성 기능을 사용한 다중 레벨 배쉬 완성?

약간의 완료 파일을 추가하고 싶습니다.

나는 두 가지 흥미로운 기능을 발견

  • _known_hosts
  • 을 _user_at_host

나는 첫 번째 인수를 위해, 그것은 _known_hosts를 사용하여 작성해야하며 초

을 _user_at_host 사용하여 말할 수있는 방법
#!/bin/bash 

_send-msg_complete() 
{ 
    local cur prev 

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

    if [ $COMP_CWORD -eq 1 ]; then 
     COMPREPLY=($(compgen -F _known_hosts -- $cur)) 
    elif [ $COMP_CWORD -eq 2 ]; then 
     COMPREPLY=($(compgen -F _user_at_host -- $cur)) 
    fi 

    return 0 
} && 

complete -F _send-msg_complete send-msg 

다음은 내가 가지고있는 내용이지만, 그렇지 않습니다. 일하지 마라. 뭐가 문제 야 ?

답변

0

사실, 그것은 매우 간단합니다 :

#!/bin/bash 

_send-msg_complete() 
{ 
    local cur prev 

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

    if [ $COMP_CWORD -eq 1 ]; then 
     _known_hosts 
    elif [ $COMP_CWORD -eq 2 ]; then 
     _user_at_host 
    fi 

    return 0 
} && 

complete -F _send-msg_complete send-msg 
관련 문제