Как мне перечислить функции, определенные в моей оболочке? - PullRequest
186 голосов
/ 17 декабря 2010

Я могу набрать псевдоним, чтобы показать список всех псевдонимов.

Но для функций все, что я могу сделать, - это grep my .bash_profile.

.файл, а не те, которые определены во вспомогательных файлах или динамически.

Есть ли более удобный способ узнать, какие функции определены в настоящее время?

Ответы [ 6 ]

232 голосов
/ 17 декабря 2010

declare -F

Имена и определения функций могут быть перечислены с опцией -f для declare встроенная команда (см. Bash Builtins). Опция -F до declare будет перечислять только имена функций (и, необязательно, исходный файл и номер строки).

Справочное руководство Bash

77 голосов
/ 17 декабря 2010

Предполагается, что bash shell:

typeset -f

отобразит список функций.

typeset -F

перечислит только имена функций.

58 голосов
/ 07 января 2013
declare -F

даст вам имена всех функций

type function_name

даст вам источник для конкретной функции

47 голосов
/ 02 февраля 2015

declare -F фактически печатает объявления команд, а не только имена функций:

$ declare -F
declare -f function1
declare -f function2

Вы можете использовать compgen -A function для печати только имен функций:

$ compgen -A function
function1
function2
28 голосов
/ 21 февраля 2014

набрано устарело, используйте:

declare -f

или

declare -f function_name

или

type function_name
2 голосов
/ 08 марта 2015
set | grep " ()"

Вместо grep вы также можете использовать fgrep или hgrep (hgrep - мой личный фаворит, это grep, но он приветствует результат 'grep-ped'.

hgrep можно найти здесь: ACME Labs hgrep

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...