shell 使用Makefile中的脚本输出,用于sed cmd和变量更新[重复]

edqdpe6u  于 2023-02-24  发布在  Shell
关注(0)|答案(1)|浏览(140)
    • 此问题在此处已有答案**:

Makefile variable assignment error in echo(2个答案)
昨天关门了。
这篇文章是昨天编辑并提交审查的。
我想生成一个给定范围内的随机值,并使用结果更新Makevariable以及修改文件。
我试着使用下面的代码,我确实看到了生成的随机值。但是我不能在sed/Make变量中使用它。
生成文件::

ALL_CPU_IRQ = 1

all:
ifeq ($(ALL_CPU_IRQ),1)
        RANDINT=$(shell python -c 'from random import randint; print(randint(1,3));')
        @echo $(RANDINT)
override BLOCK_RUN_OPT  +=  +init_cpu=$(RANDINT)
        sed -i 's|asm_comp_opt_tl=|\0INIT_CPU=$(RANDINT),|' $(CURDIR)/asm_opt.txt
        @echo $(BLOCK_RUN_OPT)
endif

我观察到的输出为:

RANDINT=2
+init_cpu=

和asm_opt.txt:系统集成组件选项=初始化CPU =,
预期产出:

RANDINT=2
+init_cpu=2

和asm_opt.txt:系统集成组件选项=初始化CPU = 2,
我是Makefile的新手。任何建议都会很有帮助。如果这是一个多余的问题,我道歉。

wgeznvg7

wgeznvg71#

尝试以下操作:

RANDINT=$(shell python -c 'from random import randint; print(randint(1,3));')
@echo $(RANDINT)
    override BLOCK_RUN_OPT  +=  +init_cpu=$(RANDINT)
@echo $(BLOCK_RUN_OPT)
sed -i 's|asm_comp_opt_=|\0INIT_CPU="$RANDINT",|' $(CURDIR)/asm_opt.txt

相关问题