Описание тега whalewatching
Я пытаюсь сделать Баш завершения команды, и все работает нормально со всеми слова команды, но когда я пытаюсь выполнить "--" флаги, с помощью следующего кода (с полное -Ф _keybase keybase
), используя любую букву, после двух галсов (т. е. keybase --ч<вкладка>
) я получаю compgen об ошибках и использовании. (keybase --<> вкладка
работает, как ожидалось, впрочем). Это на Ubuntu 18.04. Я в поиске этот файл в текущем сеансе оболочки, а не как часть сценария входа в систему (пока).
_keybase() {
местная шавка пред'ОПЦ
COMPREPLY=()
шавка="${COMP_WORDS[COMP_CWORD]}"
предыдущий="${COMP_WORDS[COMP_CWORD-1]}"
#...код удален для краткости
если [[ ${пес} == -* ]]; затем
# завершить "--" параметры
ОПЦ=$(keybase помочь дополнительно | команда grep -Ро '\-\-[а-Z\-]+' | тр "\Н" " ")
COMPREPLY=( $(compgen -з "${действия}" -- ${пес}) )
интернет
}
Вот что выводит при вводе keybase --ч<вкладка>
keybase --hbash: compgen: --: недопустимый параметр
compgen: использование: compgen [-abcdefgjksuv] [-о параметры] [-действие] [-г globpat] [-ж словник] [-функции f] [-c команда] [-х filterpat] [-П префикс] [-s суффикс] [слово]
Я менял экранирование кавычек, а добавил/удалил строки в определение $опт и добавил/убрал "--" в качестве второго аргумента compgen (я добавил Эти по указке Debian в статье объяснял Баш завершения
keybase помочь дополнительно | грэп -Ро '\-\-[а-Z\-]+' | тр "\Н" " "
результаты:
--АПИ-свалка-небезопасно --АПИ-тайм-аут --АПИ-Ури-путь-префикс-приложение-запустить-режим-БГ-идентификатор-инвалидов --чат-дБ --подписывания кода-дети ... конфиг-файл-использовать-корень-конфиг-файл --БД --отладка --дисплей-сырье-ненадежный-вывода --характеристики --Грот --Грот-параметры --дом --leveldb-ням-файлы-местные-ЭКП-отладка и небезопасная опции --log-файл --ЕК-лог-файл --журнал-формат журнала --префикс --Меркле-дети-не-отладка-отладка --pgpdir --gpgdir --PID-файл --pinentry-доказательство-кэш-размер --доверенности --пуш-инвалидов --нажимаем-сохранить-интервал --пуш-сервер-Урия, ПВЛ-кит --paramproof-комплект-докажи,-обход-помните-фраза-Беги-режим-скребок-тайм-аут --секрет -- брелок --сервер --сессии-файл --медленно-Грегор-Конн-читать-удалять-sigchain-разъем-файл --автономный --таймеры --Тор-скрытая-адрес-Тор-режим-ТОР-прокси --обновления-конфиг-файл --обновление для каждого пользователя-ключ-использовать по умолчанию-лог-файл-пользователю-кэш-размер --vdebug --отключить-команда-аудитор --отключить-Меркле-аудитор --отключить-поиск-индексатор --отключить-БГ-сопу-погрузчик опцией --enable-бот-лайт-режим-авто-вилка не вилка-помощь-создать-Баш-завершения-версия
и когда я повторяю команду, которая compgen, как ожидается, работать с Эхо "compgen -з \"${действия}\" -- ${пес}"
я получаю команду я ожидал, и действительно, работает просто отлично в терминале:
compgen -ж "--АПИ-свалка-небезопасно --АПИ-тайм-аут --АПИ-Ури-путь-префикс-приложение-запустить-режим-БГ-идентификатор-инвалидов --чат-дБ --подписывания кода-дети ... конфиг-файл-использовать-корень-конфиг-файл --БД --отладка --дисплей-сырье-ненадежный-вывода --характеристики --Грот --Грот-параметры --дом --leveldb-ням-файлы-местные-ЭКП-отладка и небезопасная опции --log-файл --ЕК-лог-файл-журнал-формат журнала --префикс --Меркле-дети-не-отладка-отладка --pgpdir --gpgdir --PID-файл --pinentry-доказательство-кэш-размер --доверенности --пуш-инвалидов --нажимаем-сохранить-интервал --пуш-сервер-Урия, ПВЛ-кит --paramproof-комплект-докажи,-обход-помните-фраза-Беги-режим-скребок-тайм-аут --секрет -- брелок --сервер --сессии-файл --медленно-Грегор-Конн-читать-удалено-sigchain --сокет-файл --автономный --таймеры --Тор-скрытая-адрес-Тор-режим-ТОР-прокси --обновления-конфиг-файл --обновление для каждого пользователя-ключ-использовать по умолчанию-лог-файл-пользователю-кэш-размер --vdebug --отключить-команда-аудитор --отключить-Меркле-аудитор --отключить-поиск-индексатор --отключить-БГ-сопу-погрузчик опцией --enable-бот-лайт-режим-авто-вилка не вилка --помощь генерировать-Баш-завершения-версии " -- --ч
--домой
--помогите