시작:
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" ) )
(여전히 명령을 자동 완성합니다).