Мне нужно выполнить эту задачу ссылка из переменной:
InstallLocation=/opt/software/software.properties
ReplaceeVar=http://localhost:1234/ab/cd/{company}/{employee}/
sed -i "s/Change_This_Url/"${ReplaceeVar}"/g" "$InstallLocation"
При построении URL-адреса произойдет сбой, например:
sed: -e expression #1, char xx: unterminated `s' command
Во-первых, я не знаю, для чего нужны все ваши цитаты. Просто заключите команду подстановки в кавычки.
В команде sed
вы используете косую черту для разделения регулярного выражения и строки замены. ReplaceeVar
также содержит много косых черт. В результате получается команда
sed -i "s/Change_This_Url/http://localhost:1234/ab/cd/{company}/{employee}//g" "$InstallLocation"
Вы понимаете, почему это не работает?
Решение состоит в том, чтобы использовать не косую черту, а другой символ для разделения регулярного выражения и заменяющей строки. На мой взгляд, знаки трубы даже красивее, чем косая черта:
sed -i "s|Change_This_Url|${ReplaceeVar}|g" "$InstallLocation"