문제

사용자의 비밀번호를 약 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
}
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top