我有一个期望脚本,可以打开一个telnet会话并执行授权。执行授权后,我希望能够从 bash 调用其他期望脚本,这些脚本在同一会话中执行各种操作。
可能吗?
不完全得到你想要的,因为如果你提供一些代码或脚本,那么击球,但无论如何我只有 bash 脚本,它只打开 telnet 会话,这是你想要的第一部分,现在让我知道下一部分在通过脚本时,这样我就可以根据需要修改我的脚本。
#!/bin/bash
testUserAction()
{
expect<<EOF
set timeout 200
spawn telnet $1
expect "login:"
send "testuserr"
expect "Password"
send "12345678r"
;;;;;;;;;;;;;#rest of expect which you want
EOF
}
testUserAction 171.172.12.1
可以参见以下示例:
#!/usr/local/bin/expect
set user "user"
set host "host"
set pass "password"
spawn telnet $host
set timeout 10
expect {
timeout {
puts "Unable to connect to $host"
exit 1
}
"login: " {
send -- "$userr"
exp_continue
}
"assword: " {
send -- "$passr"
}
}
#Call the other expect script on host
send -- "./test.exp $userr"
expect {
"($user)" {
puts "OK got it!"
}
}
然后是test.exp脚本,它应该在主机上的用户主目录中
#!/usr/local/bin/expect
set name [lindex $argv 0]
puts "Welcome ($name)"