我希望:
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调用的子进程。