Я пытаюсь сделать команду, чтобы сделать замену жемчуга относительно пакета php файлов в каталоге. Строка, которую я хочу заменить, имеет одинарные кавычки в нем, и я не могу заставить это правильно выходить в оболочке.
Я пытался повторить строку с незавершенными кавычками, видеть то, что будет получать жемчуг:
echo 's/require_once\('include\.constants\.php'\);/require_once\('include\.constants\.php'\);require_once\("\./functions/include\.session\.inc\.php"\);/g'
и это не имеет одинарных кавычек в результате:
s/require_once\(include.constants.php\);/require_once\(include.constants.php\);require_once\("\./functions/include\.session\.inc\.php"\);/g
Однако, когда я пытаюсь выйти из одинарных кавычек:
echo 's/require_once\(\'include\.constants\.php\'\);/require_once\(\'include\.constants\.php\'\);require_once\("\./functions/include\.session\.inc\.php"\);/g'
Я заставляю подсказку завершать команду:
>
То, к чему я хочу, чтобы это проанализировало, является этим:
s/require_once\('include.constants.php'\);/require_once\('include.constants.php'\);require_once\("\./functions/include\.session\.inc\.php"\);/g
Что я делаю неправильно?
Никакое расширение или оценка любого вида не происходят в единственно заключенной в кавычки строке, даже Escape обратной косой черты. Как Nifle и отправленный canen, используйте двойные кавычки и выйдите из двойных кавычек вместо одинарных кавычек. Однако только необходимо выйти из них для преимущества оболочки. Если Вы планируете использовать это s///
непосредственно в сценарии жемчуга, никакой выход не необходим, потому что Вы обычно не включали бы s///
в кавычках для начала.
Кроме того, Ваш s///
операция перестанет работать, потому что у Вас есть свой символ-разделитель /
в Вашей замещающей строке. Любой Escape обратной косой черты наклонные черты в /functions/include
:
s/require_once\('include.constants.php'\);/require_once\('include.constants.php'\);require_once\("\.\/functions\/include\.session\.inc\.php"\);/g
или выберите другой разделитель:
s@require_once\('include.constants.php'\);@require_once\('include.constants.php'\);require_once\("\./functions/include\.session\.inc\.php"\);@g