У меня есть простой скрипт завершения bash для моего пользовательского средства поиска веток git.

#/usr/bin/env bash
_branch_completions()
{
  local word="${COMP_WORDS[COMP_CWORD]}";
  if [ ! -z "$word" ]
  then
    COMPREPLY=($(compgen -W "`git branch | grep $word`" "${COMP_WORDS[1]}"))
  fi
}

complete -F _branch_completions branch

Скрипт "ветвь" ищет в ветвях, поэтому я могу искать

branch 5.9

и я получу

1 release/5.9.0
2 hotfix/5.9.1
3 hotfix/5.9.2
Please select a branch

Мой скрипт завершения bash завершит вкладку вкладки релиз ветки и даст мне release/5.9.0, но я бы хотел иметь возможность сделать вкладку вкладки ветки 5.9 и получить их все

1 ответ1

3

Со страницы руководства bash:

compgen [option] [word]
...
    If word is specified, only those completions matching word will be displayed.

Вы уже фильтруете список с помощью grep, поэтому, чтобы получить желаемое поведение, вы можете просто пропустить второй аргумент compgen, создав свою строку:

COMPREPLY=($(compgen -W "`git branch | grep $word`"))

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .