bash脚本中的SVN commit无法正常工作

bash脚本中的SVN commit无法正常工作,svn,bash,commit,Svn,Bash,Commit,我有一个小的示例脚本,是一个更大脚本的一部分,除了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-

我有一个小的示例脚本,是一个更大脚本的一部分,除了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:~# 
我真的不明白更新是如何工作的,但是提交没有。
任何帮助都将不胜感激。

单引号字符串在插入时不会保留引号

换句话说,你想要

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
之类的工具查看命令。

版本控制代码的根是什么(即带有
.svn
子目录的最高级别目录)?如果您cd到
dx test
并从那里进行提交,是否有效?我认为
不是一个工作副本
错误是抱怨
/
不是svn repo的一部分。但是我没有尝试提交/Yeh听起来不错,我正在尝试CMD=“svn commit-m\”Updated variable bits\”/mnt/checkout/dx test/“但是现在我得到了。/test.sh:第5行:svn commit-m“Updated variable bits”/mnt/checkout/dx test/:没有这样的文件或目录repeat,在尝试执行命令之前,最好不要将命令放入变量中。如果您需要查看执行的内容,请在脚本开头添加
set-x
。是的,我将它改为只执行此操作
#/bin/bash echo“CMD