在 sed 中使用 shell 输出/更新变量

问题描述 投票:0回答:1

我想在给定范围内生成一个随机值,并使用结果来更新 Makevariable 以及修改文件。

我尝试使用下面的代码,我确实看到了生成的随机值。但是我无法在 sed/Make 变量中使用它。

    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


我观察到的输出是:

RANDINT=2
+init_cpu=

和asm_opt.txt:asm_comp_opt=INIT_CPU=,


预期产出:

RANDINT=2
+init_cpu=2

和 asm_opt.txt : asm_comp_opt=INIT_CPU=2,


我是 Makefile 的新手。任何的意见都将会有帮助。如果这是一个多余的问题,我们深表歉意。

shell makefile gnu-make
1个回答
0
投票

尝试以下:

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
© www.soinside.com 2019 - 2024. All rights reserved.