如何从bash变量中更新数据存储变量?

时间:2018-01-11 18:16:08

标签: yocto bitbake

我在bbclass文件中设置了一个变量,如:

#some-bb-file.bb
inherit some-class.bbclass

some_configure() {
    PROC=$(grep -r "Processor.*${cpu_id}" ... something)
    bbnote "PROC is ${PROC}"
}

在继承该类的配方中,我有一个bash函数,我修改该变量并立即读取它的值。但是,价值永远不会更新。

{{1}}

我总是在日志中得到“PROC is”。我已经尝试打印输出“(grep -r”Processor。* $ {cpu_id}“...... something)”并返回一个有效的字符串。有人可以告诉我我错过了什么吗?

3 个答案:

答案 0 :(得分:0)

我猜你错过了反击

PROC=`grep -r "Processor.*${cpu_id}" ... something`
bbnote "PROC is ${PROC}"

答案 1 :(得分:0)

在您的代码段中使用bitbake和shell变量是混合的。你的 { "data": "=A1:B9" } 行应该省略大括号来访问shell变量,即:

bbnote

说明:bitbake和本地shell变量不同。如果您在shell函数中,则bbnote "PROC is $PROC" ${PROC}中定义的变量。执行some-class.bbclass时,不会重新定义该变量。如果使用PROC="foo",则使用$PROC定义的shell变量。

标题中的问题 - 我不确定是否可以从shell更新数据存储变量。您可以在Python函数中获取和设置数据存储变量(使用PROC="foo"d.getVar)。

答案 2 :(得分:0)

可以使用以下命令从Shell中读取数据存储区变量:

${@d.getVar('PROC')}

如果您必须使用其他操作,请切换到Python