Позвольте мне начать с того, что я пытаюсь сделать.
У меня есть инструкция sed, чтобы найти определенную строку, а затем изменить линию под ней. Для этого сначала удаляю строку под ней и добавляю строку, которую я хочу.Выполнение sed через функцию, которая дает неизмененный шаблон замещения
sed -e '/'"$rootline"'/ {N;s/\n.*//;}' -e '/'"$rootline"'/ a\
'"$1 $linetoadd" <tmpmain >tmpsec
Здесь первое выражение находит строку с выражением в $ rootline и затем удаляет следующую строку. И выражение 2 добавляет строку, которую я хочу добавить после строки с $ rootline.
Раньше у меня это было в отдельном файле .sh, и когда я вызывал файл с sudo (используя sudo для какой-либо другой важной операции в файле), он работал отлично.
Теперь я пытаюсь поместить его в функцию и вызвать ее через тот же .sh-файл. Чтобы вызвать функцию с помощью sudo, я использую это значение answer. Все, кажется, работает нормально по отношению к SUDO части функции, но когда дело доходит до выше указанного SED операции, я получаю следующее
sed: 1: "/root ALL=/ {N;s/
.*//;}
": unterminated substitute pattern #$rootline='root ALL='
Любой ключ почему я получаю эту ошибку?
Примечание: Я работаю с Mac OS X