Com bash
, você pode fazer algo assim:
for f do
if declare -F -- "$f" >/dev/null 2>&1; then
: "$f" is a function, do something with it
fi
done
declare -F -- "$f" >/dev/null 2>&1
retornará o código de sucesso se $f
for uma função bash, não produzirá nada.
Você também pode querer desabilitar alguns comandos embutidos especiais quando bash
rodar no modo POSIX adicionando builtin enable -n -- "$f"
.