dosomething () {
echo "doing something with $1"
}
find . -exec dosomething {} \;
结果是:
find: dosomething: No such file or directory
有没有办法让find的-exec看到dosomething?
解决方法:
由于只有shell知道如何运行shell函数,因此必须运行shell来运行函数.您还需要使用export -f标记要导出的函数,否则子shell将不会继承它们:
export -f dosomething
find . -exec bash -c 'dosomething "$0"' {} \;