Puedo escribir alias para mostrar una lista de todos los alias.
Pero para las funciones, todo lo que puedo hacer es grep my .bash_profile.
Eso solo obtiene los que están en ese archivo, no los definidos en archivos subsidiarios o dinámicamente.
¿Hay alguna forma más conveniente de averiguar qué funciones están definidas actualmente?

Respuestas:
declare -FManual de referencia de Bash
fuente
shopt -s extdebug) Y suministrar uno o más nombres de función aldeclare -Fcomando. OIA,declare -Fno no proporcionar nombres de ficheros / línea # S incluso cuando extdebug está habilitado, lo que no está claro a partir de la documentación, ni es particularmente intuitiva, la OMI.Asumiendo bash shell:
enumerará las funciones.
enumerará solo los nombres de las funciones.
fuente
Obsolete. See `help declare'.le dará los nombres de todas las funciones
le dará la fuente para una función particular
fuente
declare -Fen realidad imprime comandos de declaración y no solo nombres de funciones:Puede usar
compgen -A functionpara imprimir solo nombres de funciones:fuente
compgen -A functionera justo lo que estaba buscando.compgen -a -A functioncompgen -A function | grep "^[a-z]\+" | grep -vE "^dequote|^quote|^in_array"la composición está obsoleta, utilice:
o
o
fuente
En lugar de grep , también puede usar fgrep o hgrep (hgrep es mi favorito personal, es grep pero resalta el resultado 'grep-ped').
hgrep se puede encontrar aquí: ACME Labs hgrep
fuente
set | grep " () $" | cut -d' ' -f1. Pero es demasiado complicado en comparación con las otras respuestas.grepno es una buena solución para esto, las cadenas que coinciden con las definiciones de funciones causarán falsos positivos. @wjandrea todavía puede ser atrapado por cadenas de varias líneas, como lo hará cualquier expresión regular.No soy un experto en esto, todavía estoy aprendiendo, pero después de encontrar esta pregunta y su respuesta porque quería lo mismo, escribí lo siguiente (basado en la respuesta " La declaración del Arquetipo de Pablo ") para darme en última instancia lo que buscaba : Una lista formateada de ambos alias y funciones:
Eso fue antes de ver la respuesta de Lri , y extrapolando de eso, reemplazo las líneas
declareyaliascon loscompgencomandos apropiados , para obtener:Es una delicia para lo que quería. Compartir en caso de que ayude a alguien más.
Hay una multitud de otras "acciones" disponibles para
compgen -A [action](y otras opciones, porcompgensupuesto). Encontré una buena reseña aquí que también incluye un enlace a la página del manual (porqueman compgenen algunos casos no funciona).fuente