문제
사용자의 비밀번호를 약 12 번 정도 사용하는 응용 프로그램을 실행 중입니다. 정확히 정적이 아닌 비밀번호.어떤 때는 4~5번, 어떤 때는 9~10번 정도 물어봅니다.
아래에 제시한 것보다 문제에 대한 더 나은 해결책이 있습니까?
spawn myApp [lindex $argv 0]
expect " password: $"
send "$password\r"
expect {
" password: $" send "$password\r"
"^Rollout Done "
"^Rollout Updated "
}
위의 해결 방법을 사용하면 비밀번호를 두 번만 인식한 다음 나머지 시간 동안 수동으로 입력을 시작할 수 있습니다. 비밀번호에 루프가 가능한가요?
해결책
찾아보세요 exp_continue 명령 - 현재를 방지합니다 [expect]
명령이 반환되지 않도록 하여 후속 비밀번호 프롬프트를 찾을 수 있도록 합니다.
spawn myApp [lindex $argv 0]
expect {
-re { password: $} {
send "$password\r"
exp_continue
}
-re {^Rollout (?:Done|Updated) }
}
사용자가 비밀번호를 스크립트에 일반 텍스트로 저장하지 않고 입력하도록 하려면 다음을 참조하세요. 비밀번호에 대한 예상 스크립트 프롬프트를 어떻게 만들 수 있나요?
다른 팁
Expect는 루프를 사용할 수 있습니다. 제가 믿는 몇 가지 명령이 추가된 TCL일 뿐입니다.그러니 그냥 하세요
set found 0
while {$found < 1}
{
expect {
" password: $" send "$password\r"
"^Rollout Done " set found 1
"^Rollout Updated " set found 1
}
}
제휴하지 않습니다 StackOverflow