Я определил псевдоним функции для команды: aa
, и я определил функцию _complete_aa
, которая используется в качестве рекомендации для команды aa
через complete -F _complete_aa aa
(см. Код ниже)
aa(){
anothercommand ${@}
}
_complete_aa(){
COMPREPLY=($(compgen -W "clean build start" "${COMP_WORDS[1]}"))
}
complete -F _complete_aa aa
Когда я использую функцию, у меня неожиданное поведение:
Когда я набираю aa cle
и нажимаю TAB
, приглашение правильно завершает мой ввод в aa clean
Но, когда Я набираю aa clean bui
и нажимаю TAB
, приглашение завершает мой ввод в aa clean clean
, в то время как я ожидаю, что оно должно измениться на aa clean build
.
Я предполагаю, что моя ошибка в приведенной ниже функции завершения, которая не заботится об индексе текущего слова в стадии завершения.
_complete_aa(){
COMPREPLY=($(compgen -W "clean build start" "${COMP_WORDS[1]}"))
}
Вопрос: как мне изменить тело функции _complete_aa
, чтобы получить завершение текущего слова в clean build start
для каждого нового параметра / параметра, который я печатаю?