다음과 같은 예상 스크립트가 있습니다.
#!/usr/bin/expect
set timeout 20
set cmd "/path/vpntool --server 1.2.3.4:443 --vpnuser user"
set password [lindex $argv 0]
eval spawn $cmd
expect "VPN:"
send "$password\r";
interact
expect ".*\(Y\/N\)"
send "Y\r";
interact
스크립트는 "이 서버에 연결하시겠습니까? (Y/N)"라는 질문에서 멈추고 답변을 기다립니다.
문제가 무엇인지 아는 사람이 있습니까?
답변1
Expect는 사용자가 지시한 대로 정확히 수행됩니다.
명령 interact
에는 종료 조건이 없으므로 이 시점에서 스크립트는 사용자에게 제어권을 부여하고 다시는 가져오지 않습니다.
Expect 스크립트 도중에 대화형 액세스가 필요한 경우 다음을 참조하세요.Stack Overflow.SE의 이 질문. 스크립트가 어떻게 작동하길 원하는지에 따라 여러 가지 답변이 적용될 수 있습니다.
스크립트가 완전히 자동화되어 스크립트를 시작한 후 사용자 상호 작용이 필요하지 않은 경우 이 interact
명령이 있는 이유는 무엇입니까?