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