Вы можете изменить контексты цитирования в середине строки.(Ваш код фактически уже делает это: +/"$search_string"
расширяет +/
части в контексте без кавычек и $search_string
в контексте в двойных кавычках).
Поместите часть, содержащую переменную, в двойнуюкавычки и часть, которая нуждается в обработке экранирования обратной косой черты в стиле C внутри $''
, следующим образом:
echo "o${SampleIns}"$'\E:x\n'
Если SampleIns
содержит последовательности обратной косой черты, замените их литеральными значениями, на которые они ссылаются, используя printf %b
заранее:
printf -v SampleInsLiteral '%b' "$SampleIns"
echo "o${SampleInsLiteral}"$'\E:x\n'