需要执行 sed 来替换 do_install() 中的 ${D} 字符串

Need to do sed to replace ${D} string in do_install()

我正在做一个 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'

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

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