У меня есть скрипт с ниже 2 команды:Как я могу исправить sed invalid command code '?
sedcmd1="sed -i '' '/<PromptOnUpdate>true<\/PromptOnUpdate>/G' /Users/abc/data.xml"
$sedcmd1
когда я запускаю сценарий, я получаю ниже ошибки:
sed: 1: "'/<PromptOnUpdate ...": invalid command code '
Если я выполнить команду без присвоения его переменной, она работает просто хорошо. Но я получаю сообщение об ошибке только тогда, когда я назначаю его переменной, выполнив ее оттуда.
Мне нужна команда в переменной для моих нужд, так как я пытаюсь получить команду в качестве аргумента для сценария оболочки.
Отрывок из data.xml:
<?xml version="1.0" ?>
<Settings Version="1.0.0">
<Android>
<PromptOnUpdate>true</PromptOnUpdate>
</Android>
</Settings>
Спасибо за глядя на это!
PS: Я на Mac OSX Mavericks
Или еще лучше, [не делать] (http://mywiki.wooledge.org/BashFAQ/050). – tripleee
Работает как шарм. Большое спасибо! – user1819441
Обратите внимание, что метод массива в ответе @ John1024 обычно считается лучшим решением. Если у вас есть вложенные кавычки в команде, им сложнее использовать 'eval'. – Barmar