Ответ 1
Названия функций и определения могут быть перечислены с опцией
-f
дляdeclare
встроенная команда (см. Bash Встроенные устройства). Параметр-f
дляdeclare
будут перечислены только имена функций (и, возможно, исходный файл и номер строки).
Я могу ввести псевдоним, чтобы отобразить список всех псевдонимов.
Но для функций все, что я могу сделать, это grep my .bash_profile
.
Это только те, что содержатся в этом файле, а не те, которые определены в вспомогательных файлах или динамически.
Есть ли более удобный способ узнать, какие функции в настоящее время определены?
Названия функций и определения могут быть перечислены с опцией
-f
дляdeclare
встроенная команда (см. Bash Встроенные устройства). Параметр-f
дляdeclare
будут перечислены только имена функций (и, возможно, исходный файл и номер строки).
Предполагая bash shell:
typeset -f
перечислит функции.
typeset -f
будут перечислены только имена функций.
declare -F
предоставит вам имена всех функций
type function_name
предоставит вам источник для определенной функции
declare -F
действительно печатает объявления команд, а не только имена функций:
$ declare -F
declare -f function1
declare -f function2
Вы можете использовать compgen -A function
для печати только имен функций:
$ compgen -A function
function1
function2
набор устарел, используйте:
declare -f
или
declare -f function_name
или
type function_name
set | grep " ()"
Вместо grep вы также можете использовать fgrep или hgrep (hgrep - мой личный фаворит, он grep, но он приветствует результат grep-ped.
hgrep можно найти здесь: ACME Labs hgrep