Test de l'existence de la fonction qui peut fonctionner à la fois bash et zsh?

Existe-t-il un moyen de tester s'il existe une fonction shell qui fonctionnera à la fois pour bash et zsh ?

Si vous voulez vérifier qu'il existe une fonction actuellement définie (ou au less potentiellement marquée pour le chargement automatique) par le nom foo qu'un file builtin / executable / keyword / alias soit également disponible sous ce nom, vous pouvez:

 if typeset -f foo > /dev/null; then echo there is a foo function fi 

Bien que notez que s'il y a un mot-key ou un alias appelé foo aussi, il aurait préséance sur la fonction (lorsqu'il n'est pas cité).

Ce qui précède devrait fonctionner dans ksh (d'où il vient), zsh et bash .

 foo() { echo "bar" } if type foo >/dev/null 2>&1 then echo "function exists" fi