명령줄에서 실행하는 프로그램이 있습니다. 일단 실행되면 텍스트 값을 요청하고 그 후에 Return 키를 누를 것으로 예상합니다.
이 프로그램을 실행하고 프롬프트가 나타날 때까지 기다린 다음(2초라고 가정) 텍스트와 Enter 키를 제공하는 bash 스크립트를 만드는 것이 가능합니까?
편집하다:
Expect를 사용하여 이 스크립트를 만들었지만 작동하지 않습니다.
#!/usr/bin/expect -f
set timeout 15
set user "myusername"
set server "x.x.x.x"
spawn ssh -l $user -p AAAA $server
expect "[email protected]'s password: "
send "the password\r"
여기서 AAAA는 포트이고 xxxx는 IP입니다.
이 스크립트를 실행하면 거의 즉시 완료되고 아무 일도 일어나지 않습니다.
답변1
지금은 작동하지만 스크립트를 다음과 같이 변경했습니다.
#!/usr/bin/expect -f
set timeout 15
set user "myusername"
set server "x.x.x.x"
spawn ssh -l $user -p AAAA $server
expect "[email protected]'s password: " { send "the password\r" }
interact