我有一个运行一些自定义工具的makefile,其中一个工具有时会吐出一个额外的文件。其中一个工具有时会吐出一个额外的文件。这个文件必须在后续的配方中使用(如果它存在的话)。我不能假定它存在于依赖关系中,但如果它存在的话,我必须将它添加到后续的配方命令中。这是我目前的处理方法。
final_recipe:
[ ! -f "maybe.file" ] || tool maybe.file ...
[ -f "maybe.file" ] || tool ...
这很难看 有什么建议可以让bash的可执行行评估文件是否存在,如果存在,就把它嵌入?比如说:
final_recipe
tool ([ -f "maybe.file"] ? maybe.file) ...
这可能达到你想要的目的。
final_recipe:
tool $$(test -f maybe.file && echo maybe.file) ...
根据MadScientist的评论更新