【问题标题】:Need to do sed to replace ${D} string in do_install()需要做 sed 来替换 do_install() 中的 ${D} 字符串
【发布时间】:2020-05-17 10:57:44
【问题描述】:

我正在做一个 yocto 食谱:

do_install () {
  install -d -m 755 ${D}/opt/intel
  sed -i 's/\/opt\/intel/\/TEST_PATH/' silent.cfg
}

这可行,但我想在配方中将 TEST_PATH 替换为 ${D},以下将 bitbake 失败:

do_install () {
  install -d -m 755 ${D}/opt/intel
  sed -i 's/\/opt\/intel/${D}/' silent.cfg
}

错误:

sed: -e expression #1, char 17: unknown option to `s'

【问题讨论】:

  • ${D} 是 shell 变量吗? IOW,给定代码 D=arf; sed 's/foo/${D}/' <<< foo,您期望的输出是 1) "arf" 还是 2) 文字 “${D}”?运行它会显示 2) 是输出,但也许 1) 是 OP 的意图。

标签: sed yocto openembedded


【解决方案1】:

我不知道 yocto 方面,我假设它会为您替换 ${D},但在 sed 中,替换命令可以使用任何分隔符,而不仅仅是 /。例如,如果您的变量 ${D} 不包含冒号 :,您可以使用它:

sed -i 's:/opt/intel:${D}:' silent.cfg

【讨论】:

    猜你喜欢
    • 2013-03-14
    • 2012-10-09
    • 2020-03-13
    • 1970-01-01
    • 1970-01-01
    • 2020-07-28
    • 2021-12-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多