2017-08-07 58 views
0

我想直接在我的Makefile中“构建”一个命令。 我需要这样的:通过在循环中迭代来构建Makefile命令

# Makefile 

CLUSTERS: 1 2 3 

build: 
COMMAND="" 
for cluster in $(CLUSTERS) ; do \ 
    COMMAND+=$(shell echo "path\to\command command "$$cluster" & ") ; \ 
done 
COMMAND+=$(shell echo "wait") 
$(DOCKER_EXEC) ${COMMAND} 

然后,make build将相当于:

path\to\command command 1 & path\to\command command 2 & path\to\command command 3 & wait 

回答

1

我假设你使用GNU Makefile

在这种情况下

CLUSTERS=1 2 3      
COMMAND=$(subst &, &,$(addprefix path\to\command command,$(addsuffix &,${CLUSTERS})) 
COMMAND+="wait" 

build: 
    $(DOCKER_EXEC) ${COMMAND} 
+0

我更新了我的问题,这是不够清晰(对不起)。我需要能够在码头集装箱内发送整个命令。 – RaDyUm

+0

@RaDyUm检查我更新的答案! – uzsolt

+0

With: '$(addprefix $(addprefix path/to/command,command),$(addsuffix&,$ {CLUSTERS}))' 我得到了 'path/to/command command 1&path/to/command命令2&pat​​h/to/command命令3&' 它非常接近,但是我需要**数字**和**&**之间的空格: 'path/to/command命令1&path/to/command命令2&pat​​h/to/command command 3&' – RaDyUm