2010-12-21 126 views
-1

我有一個腳本,需要在我的Subversion存儲庫中的各個分支之間切換才能執行副本。這導致必須重複輸入密碼。現在,一旦我完成了這一段時間,並且我很熟悉我的劇本。我搞砸了,引起我很大的憤怒。期望重複輸入用戶名和密碼的腳本

我已經使用期望在提示之前輸入密碼。我希望能夠學習如何一次又一次地運行多次密碼提示,直到任務完成。

到目前爲止,這是我的。

#!/usr/bin/expect 
global env 
set timeout 10 
spawn command that requires password 
expect "^user" 
send "password\r" 
#i need this to repeat over and over until the prompt stops showing up. 

請謝謝。

回答

2

天真,蠻力方法:

while 1 { 
    expect $prompt 
    send $password\r 
} 

更好:

expect { 
    $prompt { 
     send $password\r 
     exp_continue 
    } 
    timeout { 
     puts "haven't seen prompt for $timeout seconds" 
    } 
    "some pattern that indicates password no longer required" 
} 
puts "continuing ..." 
5

你有沒有想過使用ssh keys所以你不必一遍又一遍地輸入密碼?

+0

SSH密鑰不工作,我有他們的設置,但它並不想進行檢查,當我運行此命令。 – myusuf3 2010-12-21 16:17:52