기대에서 스크립팅할 때 네트워크 지연, 셸 응답 및 시스템 타이밍에 대해 생각해야 합니다. 다른 스크립팅 언어와 마찬가지로 Expect에는 단점이 있지만 반복적인 키 입력 및 절차를 자동화하는 쉬운 방법입니다. 스크립트 디버깅에 소요되는 시간은 노력할 만한 가치가 있습니다. 처음이 작업을 시작했을 때 일반 유닉스 셸은 로그인하라는 메시지가 표시 될 때 암호를 보낼 수있는 방법이 없기 때문에 SSH 암호를 입력하는 방법에 문제가 생겼습니다. 그런 다음 입력을 위해 터미널을 여는 프로그램과의 상호 작용을 자동화 할 수있는 기대 스크립트에 대해 알게됩니다. 이제 expect가 있는 while 루프를 볼 수 있습니다(기본적으로 예상에서 제공하는 이러한 조건부는 TCL 언어에서 제공됩니다) 따라서 tcl에서 작동하는 모든 조건부도 기대와 함께 이상적으로 작동해야합니다). 게으른… 어, 스마트 … 관리자는 스크립트, 계단식 스크립트 및 cron 작업을 통해 백그라운드에서 열심히 작업합니다. 우리는 이제 기대가 /usr/bin/expect에 있다는 것을 알고 있습니다(이 위치는 시스템마다 다를 수 있습니다) 그래서 나는 당신의 컴퓨터에서 실제 위치를 찾기 위해 위의 “whereis”명령을 발사하는 것이 좋습니다.) 또는 Expect 스크립트에 실행 권한 집합이 있는지 확인하고 셸 스크립트와 마찬가지로 실행해야 합니다. expect 명령을 명시적으로 지정하지 않고 특정 경로에서 파일을 복사해야하지만 복사하려고 할 때 보안상 암호를 입력하라는 요청이 표시됩니다. 여기에 내가 생각 $hostname 산란 ssh를 사용한 스크립트입니다 “[이메일 보호] $hostname의 암호: {보내기 “$passwordR”} 당신에게 몇 가지 배경을 제공하기 위해, 나는 퍼티를 사용하여 명령 줄에서 문제없이 solaris 상자에 ssh 수 있습니다, 나는 또한 내 그루비를 실행하고 기대할 수 있습니다 이클립스에서 스크립트와 나는 연결할 수 있습니다. FTP 프로그램의 경우와 같이 변경 가능한 출력을 생성하는 많은 명령이 있습니다.

이 문제를 해결하려면 변경 가능한 데이터에 와일드카드를 사용하여 스크립트를 보다 유연하게 만들 수 있습니다. Expect는 전체 문자열이 아닌 예상 줄의 마지막 몇 문자를 찾기 때문에 프롬프트가 계속 작동합니다.