Я пытаюсь реализовать пользовательское завершение bash, как описано здесь . Тем не менее, кажется , что compgen
это чувствительно к регистру . Есть ли способ превратить это без учета регистра в этом контексте?
Я пытаюсь реализовать пользовательское завершение bash, как описано здесь . Тем не менее, кажется , что compgen
это чувствительно к регистру . Есть ли способ превратить это без учета регистра в этом контексте?
Ответы:
Я бы изменил пример из ссылки, которую вы упомянули, примерно так:
_foo()
{
local cur prev opts
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD],,}" # this downcases the result
prev="${COMP_WORDS[COMP_CWORD-1],,}" # here too
opts="--help --verbose --version"
if [[ ${cur} == -* ]] ; then
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
return 0
fi
}
complete -F _foo foo
Для получения дополнительной информации обратитесь к документации bash или сайту bash hackers .
opts
все строчные. Если бы это было так--help --verbose --VERSION
, он никогда не смог бы завершить третий случай.