get uma lista de nomes de funções em um script de shell [duplicado]

Esta pergunta já tem uma resposta aqui:

Como listar as funções definidas no meu shell? respostas

Tenho um script Bourne Shell que possui várias funções e permite ser chamado da seguinte maneira:

my.sh <func_name> <param1> <param2>

Dentro func_name () será chamado com param1 e param

Quero criar uma função de "ajuda" que apenas liste todas as funções disponíveis, mesmo sem parâmetro

A pergunta: como faço para obter uma lista de todos os nomes de funções em um script de dentro do scrip

Gostaria de evitar analisá-lo e procurar padrões de função. Muito fácil de errar.

Obrigado, Alex

update: o código. Queria que minha função help () fosse como main () - uma função adicionada ao código é adicionada automaticamente à ajuda.

#!/bin/sh

# must work with "set -e"

foo ()
{
    echo foo: -$1-$2-$3-
    return 0
}

# only runs if there are parameters
# exits
main ()
{
    local cmd="$1"
    shift
    local rc=0
    $cmd "$@" || rc=$?
    exit $rc
}

if [[ "$*" ]]
then
    main "$@"
    die "how did we get here?"
fi