LINUX.ORG.RU

История изменений

Исправление Kroz, (текущая версия) :

Не используй обратные кавычки ``. Вместо них используй "$( )".
И вот эта конструкция странная: echo "$cmd" | bash
А еще в bash принято называть переменные большими буквами.

По вопросу:
https://stackoverflow.com/questions/407523/escape-a-string-for-a-sed-replace-...

Updated

insertAfter='#!/bin/bash'
fileName='./file.txt'

insertAfterEsc="$(printf '%s\n' "$insertAfter" | sed -e 's/[]\/$*.^[]/\\&/g')"

cmd="sed \"/$insertAfterEsc/,$ d\" \"$fileName\" "
eval "$cmd" > /tmp/sedHead.txt

Исходная версия Kroz, :

Не используй обратные кавычки ``. Вместо них используй "$( )".
И вот эта конструкция странная: echo "$cmd" | bash
А еще в bash принято называть переменные большими буквами.

По вопросу:
https://stackoverflow.com/questions/407523/escape-a-string-for-a-sed-replace-...

insertAfter='#!/bin/bash'
fileName='./file.txt'

insertAfterEsc="$(printf '%s\n' "$insertAfter" | sed -e 's/[\/&]/\\&/g')"

cmd="sed \"/$insertAfterEsc/,$ d\" \"$fileName\" "
eval "$cmd" > /tmp/sedHead.txt