SVN коммит внутри bash-скрипта работает некорректно - PullRequest
0 голосов
/ 22 августа 2011

У меня есть небольшой пример скрипта, часть большего скрипта, который работает нормально, за исключением части коммита svn.

root@dx-svn02:~# cat test.sh 
#!/bin/bash
CMD="svn update /mnt/checkout/dx-test/"
echo "INFO>>>: $CMD"
$CMD

CMD="svn commit -m 'Updated various bits' /mnt/checkout/dx-test/"
echo "$CMD"
$CMD
root@dx-svn02:~# ./test.sh 
INFO>>>: svn update /mnt/checkout/dx-test/
At revision 3.
svn commit -m 'Updated various bits' /mnt/checkout/dx-test/
svn: '/' is not a working copy
root@dx-svn02:~# svn commit -m 'Updated various bits' /mnt/checkout/dx-test/
root@dx-svn02:~# 

Я действительно не понимаю, как может работать обновление, но коммитне делает.Любая помощь будет высоко ценится.

1 Ответ

1 голос
/ 22 августа 2011

Строка в одинарных кавычках не остается в кавычках при интерполяции.

Другими словами, вы хотели бы иметь

ARGV[0] = svn
ARGV[1] = commit
ARGV[2] = -m
ARGV[3] = Updated various bits
...

... но способ цитированияработает, вы получаете

ARGV[0] = svn
ARGV[1] = commit
ARGV[2] = -m
ARGV[3] = 'Updated
ARGV[4] = various
...

Возможно, вам лучше использовать что-то вроде set -x для просмотра команд при их выполнении.

...