2011-03-29 82 views
0

親愛的全部,
我正試圖通過shell腳本實現svn copy操作。我遇到的問題是處理svn錯誤,如。這裏去有關該問題的簡要說明,
我SVN結構如下:如何使用shell腳本處理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乙

回答

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的更多信息,瞭解它如何工作。

+0

非常感謝您的及時回答。再次感謝。 – Srikanth 2011-03-29 18:33:01