Bash автозаполнение для списка файлов в определенном каталоге и перейти к следующей команде - PullRequest
0 голосов
/ 10 октября 2019

Вариант использования: мне нужно часто экспортировать KEY = value_file или cat value_file, и существует множество файлов, так что создание псевдонима для каждого из них невозможно. Рабочий процесс:

XXX$: `name of the function, say ABC` SPACE

Затем я нажму вкладку, и я хочу увидеть список файлов в определенном каталоге. что-то вроде

XXX$: ABC "cursor still here"
filea fileb filec
filed filee filef

И, наконец, я могу завершить свою команду

XXX$: ABC filee

Я думаю, что функция в моем bash_profile будет выглядеть примерно так, но следующее не работает.

complete -r ABC
ABC(){
  COMPREPLY=$(ls somedir)
  export KEY=$1
}

ps: какую команду нужно видеть man complete? Я хочу видеть руководство по complete вместо общих команд.

РЕДАКТИРОВАТЬ

благодаря укрытию я разобрался:

ABC(){
  select f in $(ls mydir);
  do
    export KEY=mydir/$f;
    break;
  done
}

И есть еще одна альтернатива:

ABC(){
  export KEY=mydir/$1
}
complete -W "$(ls mydir)" ABC
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...