나는 형태의 인수를 인식하는 bash는 완료 스크립트를 만들려면 --arg
및 --some-arg=file
.
이 튜토리얼 과 예제를 읽은 후 /usr/share/bash_completion/completions/
Chromium으로 플래그를 입력 할 때 시간을 절약하기 위해 다음 스크립트를 작성했습니다.
_chromium()
{
local cur prev opts
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
# Some interesting options
opts="
--disable-web-security
--easy-off-store-extension-install
--incognito
--load-extension=
--pack-extension=
--pack-extension-key=
--user-data-dir=
"
# Handle --xxxxxx=file
if [[ ${cur} == "--"*"=" ]] ; then
# Removed failures (is my logic OK?)
return 0
fi
# Handle other options
if [[ ${cur} == -* ]] ; then
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
return 0
fi
}
complete -F _chromium chromium
에 저장 ~/bash_completions/chromium
하고을 사용하여 심볼릭 링크를 만들었습니다 sudo ln -s ~/bash_completions/chromium /usr/share/bash_completion/completions/chromium
.
그런 다음을 사용하여로드했습니다 . /usr/share/bash_completions/completions/chromium
.
이제 두 가지 문제가 있습니다.
chromium --u<TAB>
chromium --user-data-dir=<SPACE>
(나는 공간을 원하지 않는다)로 확장합니다 .- 경로 (디렉토리 및 파일)가 더 이상 완료되지 않습니다.
이러한 문제를 어떻게 해결할 수 있습니까?