#linux #shell
#linux #оболочка
Вопрос:
Я пытаюсь измениться ${localstatedir}/lib/corei7
с ${localstatedir}/lib/${PN}
помощью того, где {PN}
устанавливается значение i586
.
sed -i ${D}${sysconfdir}/file.txt -e "s|${localstatedir}/lib/corei7|${localstatedir}/lib/${PN}|g"
это дает мне ошибку синтаксического анализа в этой команде, что здесь не так..
Комментарии:
1. Пожалуйста, покажите точное сообщение об ошибке.
2. Используется
set -x
для просмотра команды после замены переменных, что может помочь ее диагностировать.3. Без дополнительного контекста, я предполагаю, что для ввода отсутствует косая черта, где
${D}${sysconfdir}/file.txt
должно быть${D}/${sysconfdir}/file.txt
Ответ №1:
Та же самая строка работала внутри функции оболочки, спасибо @Barmar и @Eric Leung, я использовал ее так
do_install_append () {
if [ "${PN}" != "${BPN}" ]; then
install -d ${D}/${localstatedir}/lib/${PN}
sed -i ${D}${sysconfdir}/file.txt -e "s|${localstatedir}/lib/corei7|${localstatedir}/lib/${PN}|g"
fi
}