Как связать завершение bash с программой и заставить его работать в текущей оболочке? - PullRequest
7 голосов
/ 11 апреля 2010

Я потел над вопросом выше. Ответ, который я собираюсь дать, занял у меня некоторое время, чтобы собрать воедино, но он все еще кажется безнадежно примитивным и хакерским по сравнению с тем, что можно было сделать, - завершить дизайн, чтобы он был менее статичным. Я почти боюсь спросить, есть ли какая-либо веская причина, по которой логика завершения, похоже, полностью отделена от программы, для которой она завершается.

1 Ответ

8 голосов
/ 11 апреля 2010

Я написал библиотеку командной строки (можно увидеть в транке scala ), которая позволяет переключать переключатель, чтобы иметь параметр "--bash" Если вы запускаете

./program --bash

Он вычисляет файл завершения, записывает его в временный файл и выдает эхо

. /path/to/temp/file

к консоли. В результате вы можете использовать обратные пометки, например, так:

`./program --bash`

и вы получите завершение для "программы" в текущей оболочке, так как она будет источником временного файла.

Для конкретного примера: проверьте ствол Scala и запустите тестирование / тестирование.

...