有没有办法让 find
执行我在 shell 中定义的函数?
例如:
dosomething () {
echo "Doing something with $1"
}
find . -exec dosomething {} \;
结果是:
find: dosomething: No such file or directory
有没有办法让 find
的 -exec
看到 dosomething
?
原文由 alxndr 发布,翻译遵循 CC BY-SA 4.0 许可协议
由于只有 shell 知道如何运行 shell 函数,因此您必须运行 shell 才能运行函数。您还需要使用
export -f
标记要导出的函数,否则子shell不会继承它们: