Étant donné que seul le shell sait comment exécuter les fonctions du shell, vous devez exécuter un shell pour exécuter une fonction. Vous devez également marquer votre fonction pour l'exportation avec export -f
, sinon le sous-shell n'en héritera pas :
export -f dosomething
find . -exec bash -c 'dosomething "$0"' {} \;
find . | while read file; do dosomething "$file"; done