제가 test한 스크립는 이렇습니다.
#!/usr/bin/expect
set id [ lindex $argv 0 ] -->띄워쓰기 잘 하세요.
set pass [ lindex $argv 1 ]
if { $id == "" } { exit }
if { $pass == "" } { exit }
spawn passwd $id
sleep 1
expect -re "password:" --> 사용하신 -r옵션 문제인 것 같네요.
sleep 1
send "$pass
"
sleep 1
expect -re "password:"
sleep 1
send "$pass
"
interact
참고로 전 고수는 아님다.ㅋㅋㅋ
: 정말 질문을 무지 올리는데 답변이 하나도 없네여 ㅠ.ㅠ
: 정말 형편없는 질문을 해서 그런건지 ... 휴~ 답답하네염.
:
: expect를 이용하여 패스워드 변경하는 스크립트입니다.
: 머가 잘못된건지 모르겠네여. 고수님들 한수 부탁드려요.
: <스크립 내용: passwd.sh>
: #!/usr/local/bin/expect
:
: set id [lindex $argv 0]
: set newpasswd [lindex $argv 1]
:
: spawn passwd $id
:
: expect -r "New UNIX password:"
: send "$newpasswd
"
: expect -r "Retype new UNIX password:"
: send "$newpasswd
"
: interact
:
: 이상 스크립에 있는 내용입니다.
: 그런데 이 스크립을 실행하면
:
: #]passwd.sh test test01
: spawn passwd test
: Changing password for user skygod
: New UNIX password: can't read "newpasswd
": no such variable
: while executing
: "send "$newpasswd
""
: (file "./passwd.sh" line 9)
:
: 이런 에러가 떨어지네염.. 해결책 없을까여?
: 으~~ 미치기 일보직전이네염..
:
: OS : 알짜 redhat 6.2 <- 이넘 문제가 아닌가 싶습니다. 다른곳에 문제가
: 안되었던거거든염.
: expect : expect-5.32