Bash에서 동시에 두 개의 임의 명령 출력을 완료하는 방법

Bash에서 동시에 두 개의 임의 명령 출력을 완료하는 방법

시작:

function _command() {
    local cur
    COMPREPLY=()
    cur=${COMP_WORDS[COMP_CWORD]}
    if [ "$COMP_CWORD" -ge "2" ]; then
        COMPREPLY=($( compgen -W '$(pwd)' -- "$cur" ) )
    else
        COMPREPLY=($( compgen -W "arg1 arg2" -- "$cur" ) )
    fi
}
complete -F _command command

내가 이것을하는 한 이것은 훌륭하게 작동합니다 source.

예를 들어 다른 임의 명령의 출력을 자동 완성하려면 pwd어떻게 해야 합니까 hostname? 모든 파일 경로에서 자동 완성 기능을 사용하려면 어떻게 해야 합니까?

답변1

누구나

COMPREPLY=($(compgen -W '$(pwd)' -- "$cur") $(compgen -W '$(hostname)' -- "$cur"))

(더 큰 배열을 원하면 하나만 만드십시오) 또는

COMPREPLY=($( compgen -W '$(pwd; hostname)' -- "$cur" ) )

(여전히 명령을 자동 완성합니다).

관련 정보