gpt4 book ai didi

linux - 我如何初始化然后在 linux makefile 中迭代数组?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:35:08 28 4
gpt4 key购买 nike

我需要创建一个包含目录的数组,然后对其进行 inereate,在每个步骤中再创建一个数组,其中将包括通过“查找”命令为每个目录找到的所有文件,并迭代该数组。我试图做这样的事情:

declare -a arr=(a b c) ;\
for key in "$${arr[@]}" ; do \
...
done\

但它不起作用。即使这样也会出错:

all:
declare -a array=(a b c) ;\
echo "$${array[1]}" \

获取错误:

/bin/sh: 1: Syntax error: "(" unexpected
Makefile:4: recipe for target 'gg' failed
make: *** [gg] Error 2

最佳答案

这是因为 make 在运行配方时总是调用 /bin/sh(POSIX shell),除非您以不同的方式告诉它。您使用的语法特定于 /bin/bash shell,在 /bin/sh 中不可用。

如果你想使用 /bin/bash 运行你的食谱,你必须通过将此添加到你的 makefile 来明确告诉 make 这样做:

SHELL := /bin/bash

参见 For loop in makefile not working寻找另一个答案。

关于linux - 我如何初始化然后在 linux makefile 中迭代数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50204792/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com