Linux 在bash脚本中有没有迭代生成文件目标的方法?

Linux 在bash脚本中有没有迭代生成文件目标的方法?,linux,bash,makefile,Linux,Bash,Makefile,我想做一些类似的事情: for *target* in *Makefile targets* do *do some stuff* done 在我的剧本里。有什么方法可以做到这一点吗?您唯一能做的就是运行make-np,然后解析输出以提取所有目标。当然,请注意,这不会显示由隐式规则创建的任何目标。如果您想要所有这些,您可以尝试从make-np的输出中提取所有目标和先决条件。您唯一能做的就是运行make-np,然后解析输出以提取所有目标。当然,请注意,这不会显示由隐式规则创建的任何目标

我想做一些类似的事情:

for *target* in *Makefile targets*
do
     *do some stuff*
done

在我的剧本里。有什么方法可以做到这一点吗?

您唯一能做的就是运行
make-np
,然后解析输出以提取所有目标。当然,请注意,这不会显示由隐式规则创建的任何目标。如果您想要所有这些,您可以尝试从
make-np

的输出中提取所有目标和先决条件。您唯一能做的就是运行
make-np
,然后解析输出以提取所有目标。当然,请注意,这不会显示由隐式规则创建的任何目标。如果您想要所有这些,您可以尝试从
make-np

的输出中提取所有目标和先决条件,那么您面临的问题是什么?通常的方法是在Makefile中添加一个虚假的目标
all
,通过简单地提到它们被视为需求。因此,您只需执行一个
makeall
。但是我没有意识到一种隐含的方法,因为定义“目标”实际上是什么还不太清楚…@arkascha是的,我知道
make all
,但我想准确地迭代所有目标,而不仅仅是构建它们。好的,那么,请尝试回答我暗示的问题:如何定义在makefile中定义的目标集?:-)@arkascha目标集是字符串列表,对于每个字符串,我可以运行
make*something*
,它将起作用。Bash auto completion可以显示Makefile中的所有目标,所以我想要类似的东西,但在scriptSo中,您面临的问题是什么?通常的方法是在Makefile中添加一个虚假的target
all
,通过简单地将它们作为需求来迭代现有目标。因此,您只需执行一个
makeall
。但是我没有意识到一种隐含的方法,因为定义“目标”实际上是什么还不太清楚…@arkascha是的,我知道
make all
,但我想准确地迭代所有目标,而不仅仅是构建它们。好的,那么,请尝试回答我暗示的问题:如何定义在makefile中定义的目标集?:-)@arkascha目标集是字符串列表,对于每个字符串,我可以运行
make*something*
,它将起作用。Bash auto completion可以在Makefile中显示所有目标,所以我想要类似的东西,但在scriptI中我希望有更简单的方法(我希望有更简单的方法)