2015-07-07 5 views
2

У меня возникла проблема с использованием sed в сценарии bash. Вот строка:Ошибка с командой sed unterminated s в bash

sed -i "s/"$name"/"$input"/g" ~/input.script 

Я получаю эту ошибку: SED: -e выражение # 1, символ 24: Команда незакрытых `S'

достаточно Жутко он работал в более ранней версии моего кода. У меня проблемы с съемкой, но я не могу найти решение.

+2

Ваши переменные, вероятно, имеют новую строку или косую черту в них, которая запутывает sed. –

+0

@ EtanReisner Я идиот. Это оказалось ошибкой. В переменной было пробел. – Kev

+1

Пространство вызывает проблему с некорректными переменными. Поэтому, если вы удалили их, как сказал Эуджениу Роска, тогда проблема должна была исчезнуть. Новая строка все равно была бы проблемой, как и косой чертой. –

ответ

3

Вам не нужны вложенные кавычки. Кроме того, попробуйте изменить метрику:

sed -i "[email protected][email protected][email protected]" ~/input.script 
+0

Удалены, но я получаю ту же ошибку. – Kev

+0

@Kev: сбрасывайте свои переменные при возникновении ошибки. –

+2

Использование '@' здесь - это позволить '/' в значениях переменных без проблем. Он обрабатывает проблему для '@' в значениях переменных. Поэтому вам нужно выбрать что-то, что не может быть на вашем входе, чтобы сделать это правильно. –

Смежные вопросы