기대를 통해 간단한 작업을 수행하려고합니다. Linux VM에서 "ssh-keygen"명령을 사용하여 ssh 키를 만들고 싶습니다. 내 기대 이하 코드는 곧은 것 같지만 작동하지 않습니다.스크립트 문제가 있습니다.
#!/usr/bin/expect
spawn ssh-keygen -t rsa
expect -exact "Enter file in which to save the key (/root/.ssh/id_rsa): "
send -- "\r"
expect -exact "Enter passphrase (empty for no passphrase): "
send -- "\r"
expect -exact "Enter same passphrase again: "
send -- "\r"
암호 구문을 사용하고 싶지 않습니다. 따라서 "Enter"키 동작에 대해 "\r"
을 입력하십시오. "#!/usr/bin/expect -d"
으로이 코드를 실행 해 보았습니다. 언급 한 문자열과 일치하지 않습니다. 아래처럼 :
...
expect: does "" (spawn_id exp6) match exact string "Enter file in which to save the key (/root/.ssh/id_rsa): "? no
....
그래서 패턴과 일치 할 수 없으므로 내 스크립트가 실패합니다. 질문은 왜 패턴을 일치시킬 수 없는지입니다. "-exact"
을 사용하고 있는데도 여전히 일치하지 않습니다. "-re"
으로 놀려고했지만 TCL 정규식이 좋지 않다고 생각합니다.
도와 주시겠습니까? 감사합니다. .
감사합니다. 글렌, 당신은 정규 표현식 부분에 맞았 어. 그것은 패턴 매칭을 위해 작동했지만 expect 명령의 디버그는 일치하지 않는 패턴을 보여줍니다. 내 스크립트가 작동하는 한 디버그는 신경 쓰지 않습니다. 고맙습니다. –