Выполнить команду оболочки с переменной с пробелами - PullRequest
0 голосов
/ 15 февраля 2011

Я получаю сообщение об ошибке ( Не рабочая копия ) при выполнении команды svn в сценарии bash.Я хочу прочитать файл, содержащий имена файлов.Эти имена файлов обрабатываются в скрипте.Каждое имя файла находится на отдельной строке.Поскольку некоторые пути содержат пробелы, скрипт завершается ошибкой.Вот фрагмент сценария и файла.Я пробовал несколько вещей, таких как экранирование пробелов в файле и использование (дублирования) кавычек вокруг переменных, но все равно не повезло.

Сценарий:
while read line<br> do<br> echo "Line = $line"<br> svn propset svn:needs-lock yes $line<br> done <$1

Файл:
/tmp/svntmp/bi/tags/SCR-400/framework/customdata.xml<br> /tmp/svntmp/bi/tags/SCR-400/framework/model.xml<br> /tmp/svntmp/bi/tags/SCR-400/framework/Preferences.xml<br> /tmp/svntmp/bi/tags/SCR-400/framework/Repository.xml<br> /tmp/svntmp/bi/tags/SCR-462/standaard\\ overzichten/Standaard\\ CPI\\ \\(Cliënten\\ productie\\ intramuraal\\)/CPI017\\ ZZP\\ productie\\ per\\ client\\ per\\ OE.xml<br> ...

Вывод:
...<br> Line = /tmp/svntmp/bi/tags/3.2.0.6/standaard\ overzichten/Standaard\ CZA\ \(Cliënten\ zorg\ algemeen\)/CZA001\ Wachtlijst\ bewoning.xml<br> svn: warning: '/tmp/svntmp/bi/tags/3.2.0.6/standaard\' is not under version control<br> svn: 'overzichten' is not a working copy<br> svn: 'overzichten' does not exist<br> ...

Пожалуйста, сообщите, какчтобы решить это.Спасибо.

С уважением,

Johan-Kees

1 Ответ

1 голос
/ 15 февраля 2011

При необходимости используйте двойные кавычки.

svn propset svn:needs-lock yes "$line"

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...