如何使用shell脚本处理SVN错误?

时间:2011-03-29 14:35:33

标签: svn shell

亲爱的所有人,
我试图在shell脚本的帮助下实现 svn copy 操作。我遇到的问题是处理像 403 这样的svn错误。这里简要解释一下这个问题,
我的SVN结构如下:

http://localhost/myproj/branches/dev/dev1
                                /testing/test1
                                /maintainance/m1

我正在尝试编写一个shell脚本来完成这项任务 我的Shell脚本预期行为:

Enter the Source url to be copied: http://localhost/myproj/branches/dev/dev1
Enter the new url name:http://localhost/myproj/branches/testing/test2

我不希望我的脚本向用户显示实际的svn错误,如果用户未在测试分支中获得授权,则svn显示 403禁止错误,我只想要是告诉用户用户无法访问!!无法复制,请联系管理员。 是否有可能将svn错误重定向到某个变量,并且取决于该变量的值将向用户显示消息。我想用shell脚本来做..请指导我。

提前致谢
Srikanth B

1 个答案:

答案 0 :(得分:3)

使用>2>重定向您的输出。作为一个非常简单的例子:

#!/bin/ksh
svn copy $1 $2 2>&1 | grep '403 forbidden'
if [[ $? -eq 0 ]]
then
  #The grep command was successful, i.e. '403 forbidden' was in the svn output
  echo No access.
  exit 1
else
  echo Complete
  exit 0
fi

这是非常简单,并且有很多其他问题,特别是完全避免svn命令中出现的任何其他错误,但应该让你知道它是如何工作的

查看Bourne Shell Scripting: Files and Streams上的Wikibooks页面,了解有关其工作原理的更多信息。