Argsparse завершение обёрткой Bash - PullRequest
0 голосов
/ 12 февраля 2020

У меня есть Python скрипт со многими опциями, использующими argeparse. У меня также есть некоторые параметры, динамически генерируемые на основе содержимого. Я действительно хочу иметь возможность автозаполнения в bash.

Я смотрел на argcomplete , который кажется идеальным.

Однако усложняется то, что мои скрипты запускаются через Оболочка bash.

т.е.

bash_wrapper "args"

Оболочка bash загружает Python и некоторые другие настройки в среду, а затем вызывает скрипт Python.

Есть ли способ настроить завершение Bash для работы в ситуации? т.е. извлеките все аргументы и присвойте их сценарию bash.

т.е. я хочу иметь возможность выполнить:

[Bash Script] [tab]

и получить дополнения из сценария Python.

register-python-argcomplete [python script]

дает мне ожидаемые завершения , если Я предварительно загружаю свою среду из сценария Bash.

Редактировать:

После получения комментариев я получил команду register- python -argcomplete [Bash script], упростив мой скрипт bash.

В качестве продолжения. Мой сценарий bash на самом деле занимает $ 1 (первый аргумент) и использует его для выбора между python сценариями.

[bash script] a [args] -> calls a.py [args]
[bash script] b [args] -> calls b.py [args]

, если я заставлю вызов из $ 1.py в a.py автозаполнение для a.py разрешено в bash.

Так что мне нужно разобраться, как выбрать автозаполнение на основе $ 1.

...