2016-12-17 14 views
0

Expect 패키지가 설치된 Windows의 ActiveState에서 ActiveTcl Community Edition을 사용하고 있습니다. 내 자신의 스크립트 작성, 다양한 웹 사이트에서 다운로드, 심지어 ActiveState 웹 사이트에서 복사 및 붙여 넣기를 시도했지만 항상 같은 문제가 발생합니다. 내 스크립트는 명령을 완벽하게 보내고 예상대로 네트워크 장치를 구성 할 수 있지만 절전 시간이있는 샌드 샌드위치 만 사용해야합니다. 기대하는 것과 일치하는 것을 시도 할 때마다 (항상 exp_internal 1을 사용할 때) 똑같은 것을 얻습니다 : 기대 : ""(spawn_id exp4)는 glob 패턴 "AnyString"과 일치합니까? 아니. 그리고 정규 표현식에 대해서도 마찬가지입니다 : expect : ""(spawn_id exp4)가 정규 표현식 "AnyString"과 일치합니까? 아니. 그것이 작동하는 유일한 시간은 하나의 와일드 카드입니다 : expect : ""(spawn_id exp4)는 glob 패턴 "*"과 일치합니까? 예 : 기대 : 설정 expect_out (0, 문자열) "" expect : expect_out (spawn_id) "exp4" 기대 : 설정 expect_out (버퍼) "" 그러나 와일드 카드, 리터럴 또는 정규식의 다른 조합은 작동하지 않는 것 같습니다. 나는 비디오를 보았고 스크린 샷을 보았습니다. 내가 알 수있는 것은 일치가 발견 될 때까지 각 캐릭터를 반복해야한다고 말하지만 문자 그대로 ""에서 멈추고 시간이 초과되어 다음 라인으로 넘어갑니다. expect 명령이 Expect에서 작동하지 않는다면 분명히 근본적으로 잘못된 것을하고 있다고 확신하지만, 나는 무엇을 모르고 있습니다. 마치 터미널 출력을 읽을 수없는 것처럼 보이지만 send 명령이 완벽하게 작동하여 연결되어 있다는 것을 알 수 있습니다. 어떤 터미널 프로그램 (telnet, plink, netcat 등) 이건 모두 똑같은 문제가 있습니다. Expect는 정말 멋진 자동화 도구 인 것 같습니다. 그래서이 문제를 극복하는 데 도움이 될만한 제안을 보내 주시면 감사하겠습니다. 나는 대답을받은 후 어리 석을 것으로 완전히 기대하고 있습니다.예상 스크립트가 일치 할 수 없음

답변

0

아마도이 문제는 Windows의 이후 버전에서 예상과 관련하여 알려진 문제로 인해 발생할 수 있습니다. 은 Win7 또는 Win8에서 일을 할 수 있으며 Win10에서는 작동하지 않을 수 있습니다. 일반적으로 64 비트 Windows보다 32 비트 Windows에서 더 잘 작동합니다.