0

当用户名/密码在第一次尝试时正确但当我故意提供错误的用户名/密码时,下面的脚本工作正常。但是,如果提交因错误的凭据而失败,我如何让脚本再次提示用户名和密码?

#!/usr/bin/bash

read -p "Enter message: " svnmessage
read -p "Enter username: " username
read -s -p "Enter Password: " password


svn commit test.log -m "$svnmessage" --username $username --password $password --non-interactive

当我提供错误的用户名/密码时:

Enter message: some message
Enter username: wrong name
Enter Password:
svn: E170001: Commit failed (details follow):
svn: E170001: POST of '/svn/IL_IES_Demo/!svn/me': authorization failed: Could not authenticate to server: rejected Basic challenge (http://10.118.19.200:8080)
4

2 回答 2

0

我猜你可以通过--non-interactivetosvn来防止这种情况:

svn commit test.log -m "$svnmessage" --non-interactive --username $username --password $password

我假设svn commit0成功返回,所以(未经测试):

#!/usr/bin/bash

while true
do
    read -p "Enter message: " svnmessage
    read -p "Enter username: " username
    read -s -p "Enter Password: " password

    svn commit test.log -m "$svnmessage" --non-interactive --username $username --password $password

    if [ $? -eq 0 ]
    then
        break
    fi
done
于 2013-05-29T18:52:01.987 回答
0

或者,您可能想研究使用 svn+ssh:// 身份验证。在这种情况下,您可以设置一个没有密码的 SSH 公钥对,并让您的脚本使用它与 SVN 服务器进行身份验证。这对于您正在执行非交互式脚本的情况非常理想,但对于一直输入密码而烦恼的用户也很有用。

于 2013-05-31T17:54:53.310 回答