Я могу ввести псевдоним, чтобы отобразить список всех псевдонимов.
Но для функций все, что я могу сделать, это grep my .bash_profile
.
Это только те, что содержатся в этом файле, а не те, которые определены в вспомогательных файлах или динамически.
Есть ли более удобный способ узнать, какие функции в настоящее время определены?
Названия функций и определения могут быть перечислены с опцией
-f
дляdeclare
встроенная команда (см. Bash Встроенные устройства). Параметр-f
дляdeclare
будут перечислены только имена функций (и, возможно, исходный файл и номер строки).
shopt -s extdebug
) И предоставить одно или несколько имен функций для команды declare -F
. IOW, declare -F
не предоставляет имена файлов / строк #, даже когда включен extdebug, что не ясно из документации и не является особенно интуитивным, IMO.
Предполагая bash shell:
typeset -f
перечислит функции.
typeset -f
будут перечислены только имена функций.
Obsolete. See `help declare'.
declare -F
предоставит вам имена всех функций
type function_name
предоставит вам источник для определенной функции
declare -F
действительно печатает объявления команд, а не только имена функций:
$ declare -F
declare -f function1
declare -f function2
Вы можете использовать compgen -A function
для печати только имен функций:
$ compgen -A function
function1
function2
compgen -A function
была именно то, что я искал.
compgen -a -A function
функции compgen -a -A function
набор устарел, используйте:
declare -f
или
declare -f function_name
или
type function_name
set | grep " ()"
Вместо grep вы также можете использовать fgrep или hgrep (hgrep - мой личный фаворит, он grep, но он приветствует результат grep-ped.
hgrep можно найти здесь: ACME Labs hgrep
set | grep " () $" | cut -d' ' -f1
. Но это слишком сложно по сравнению с другими ответами.