给定两个要查找的-exec参数,是否有传递状态或变量的优雅方法?

时间:2017-07-29 18:52:22

标签: bash find

我希望:

find . [whatever] -exec VAR="$(another command)" \;  -exec [use $VAR here] \;

但是这可以预见地分崩离析,因为两个-exec是不同的过程。

任何优雅方式将状态从计算传递到另一个非bash -c "mess of escaped characters here" "{}"的方法?如果它是bash或GNU查找扩展名,我不介意。

顺便说一下,我可以使用$(辅助cmd)将命令用于cmd但是,变量扩展不是懒惰会让我感到困惑。如果有人尝试:

find . -type f -iname "*.gdi" -execdir echo $( basename "{}" .gdi )  \;

我得到了一个很好的

++ basename '{}' .gdi
+ find . -type f -iname '*.gdi' -execdir echo '{}' ';'
./game.gdi

这是变量扩展发生在find -exec子进程之前,并将basename调用减少为ident函数的笑话。我无法找到一种方法来延迟它,因为它不是另一个带有bash调用的子进程。

0 个答案:

没有答案