8
내 자신의 명령 세트에 대해 자동 완성 또는 탭 완성 기능을 개발하려고합니다.중첩 된 다중 레벨 부속 명령은 어떻게 자동 완성합니까?
예를 들어, foo는 내 진 가정 :
CLI>> foo [TAB] [TAB]
그것은 주요 명령 configure
및 show
을 표시해야합니다. - 어떻게 두 번째를 얻을 수
CLI>> foo [TAB] [TAB]
DSP NPU CM`
난 단지 어떻게 첫번째 수준에 탭 완성 및 디스플레이 알고 : 나는 configure
을 선택하면
그런 다음, 하위 명령 CM
, DSP
및 NPU
를 표시해야합니다 수준도?
/etc/completion.d
에 입력 해 드리겠습니다.
내 코드 :
_foo()
{
local cur prev opts
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
words=("${COMP_WORDS[@]}")
cword=$COMP_CWORD
opts="configure show"
}
내가 CM
DSP
NPU
configure
에서 하위 명령을 추가하는 방법으로 붙어있어.
_foo()
{
local cur prev
cur=${COMP_WORDS[COMP_CWORD]}
prev=${COMP_WORDS[COMP_CWORD-1]}
case ${COMP_CWORD} in
1)
COMPREPLY=($(compgen -W "configure show" -- ${cur}))
;;
2)
case ${prev} in
configure)
COMPREPLY=($(compgen -W "CM DSP NPU" -- ${cur}))
;;
show)
COMPREPLY=($(compgen -W "some other args" -- ${cur}))
;;
esac
;;
*)
COMPREPLY=()
;;
esac
}
complete -F _foo foo
: - (그들은 당신의 사건에 관련하지 않으면 당신은 단지 그 세 줄을 삭제할 수 있습니다 어떻게하는지 보여
show
의 하위 명령에 대한 섹션으로) 여기
내가 원했던 바로 그 것이다. 내가 나아가 자마자 너에게 돌아 오지. – Puneeth
재미 있고, 얼마나 멋진 것들이 여기 주위에서 찾을 수 있습니다 ;-) – GhostCat