我在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)”并返回一个有效的字符串。有人可以告诉我我错过了什么吗?
答案 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