亲爱的所有人,
我试图在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
答案 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页面,了解有关其工作原理的更多信息。