Завершение табуляции в bash для определения функций bash?

У меня есть несколько функций в моем ~/.bash_profileназвании pg_dump_[dbname]_[envname], поэтому я хотел бы ввести

type pg_dump [tab]

(или какая-либо другая команда, кроме type ) для bash, чтобы показать определение этой функции. Это встроенная функция для osx , которую мне не хватает, как использовать, или есть третья сторона для этого?

Насколько я вижу, это работает из коробки для меня. Какую версию Баша вы используете?
@nohillside Я запутался с вопросом: я собирался спросить о показе определения функции. Название вопроса и содержание были обновлены. Виноват.
Вы можете добавить автодополнение, используя примеры COMPREPLY, COMP_WORDS и COMP_CWORD здесь .

Ответы (1)

Если вы используете ksh/bash/zsh, вам нужно:

$ typeset -f name_of_the_function

Это отобразит определение.

Мой вопрос о том, как получить автоматический список имен функций. Да typeset -fможет показать определение, но и само typeсебя тоже: но, похоже, ни один из них не может использовать завершение табуляции для поиска доступных функций, соответствующих префиксу.
Да, typeпоказывает определение функции, но только в формате bash. Оболочка уже должна выполнять определенные функции, когда они появляются первыми в командной строке. Если вы ожидаете, что они будут завершены в качестве аргумента какой-либо другой команды, kshне делайте этого. Bashили zshвам придется написать свою собственную логику завершения, чтобы изменить то, что оболочка пытается выполнить против первой записи в командной строке.
Хорошо, проголосовал за информацию, так как она применима к другим оболочкам (полезно для других людей)