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

または、svn+ssh:// 認証の使用を検討することもできます。その場合、パスワードなしで SSH 公開鍵ペアをセットアップし、スクリプトでそれを使用して SVN サーバーで認証することができます。これは、非対話的なスクリプトを実行している状況に理想的ですが、常にパスワードを入力することに悩まされているユーザーにも役立ちます.

于 2013-05-31T17:54:53.310 に答える
0

これを防ぐために渡すことができると思います--non-interactivesvn

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

私は成功svn commitすると戻る0と仮定しているので、(未テスト):

#!/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 に答える