Não sou especialista nisso, ainda estou aprendendo, mas depois de encontrar essa pergunta e sua resposta porque queria o mesmo, escrevi o seguinte (com base no " resposta " A declaração do arquetípico Paulo ") para me dar o que eu última análise: uma lista formatada de aliases e funções:
function functionaliaslist() {
echo
echo -e "\033[1;4;32m""Functions:""\033[0;34m"
declare -F | awk {'print $3'}
echo
echo -e "\033[1;4;32m""Aliases:""\033[0;34m"
alias | awk {'print $2'} | awk -F= {'print $1'}
echo
echo -e "\033[0m"
}
Isso foi antes de eu ver a resposta de Lri e, assim, extrapolando disso, substituí o declare
ealias
linhas pelos compgen
comandos apropriados , para obter:
function functionaliaslist() {
echo
echo -e "\033[1;4;32m""Functions:""\033[0;34m"
compgen -A function
echo
echo -e "\033[1;4;32m""Aliases:""\033[0;34m"
compgen -A alias
echo
echo -e "\033[0m"
}
Woks um deleite para o que eu queria. Compartilhar caso ajude mais alguém.
Há uma infinidade de outras "ações" disponíveis para compgen -A [action]
(e outras opções, é compgen
claro). Encontrei uma boa redação aqui, que também inclui um link para a página do manual (porque man compgen
não funciona em alguns casos).