Poiché solo la shell sa come eseguire le funzioni della shell, è necessario eseguire una shell per eseguire una funzione. Devi anche contrassegnare la tua funzione per l'esportazione con export -f
, altrimenti la subshell non li erediterà:
export -f dosomething
find . -exec bash -c 'dosomething "$0"' {} \;
find . | while read file; do dosomething "$file"; done