【发布时间】:2016-05-04 18:34:55
【问题描述】:
我有一个奇怪的问题,我试图通过 ssh 连接到脚本内的远程设备,以便可以向它发送命令,但奇怪的是,它在我什至可以调用期望命令之前询问 ssh 连接的密码。我的 sn-p 是这样的:
#!/usr/bin/expect
set PASS="password"
echo {$PASS}
ssh admin@10.3.0.1 -p 4118 #Firewall Device IP
expect {
"Password: "
{send '$PASS\r'}
}
我得到的输出是这样的:
password
Password:
我不知道为什么会这样。
编辑: 我已经应用了@glenn jackman 建议的更改,新代码是:
#!/usr/bin/expect
set PASS "peak1234"
puts "$PASS"
ssh admin@10.3.0.1 -p 4118 #Firewall Device IP
expect "Password :"
send "$PASS\r"
通过这些更改,我得到了错误:
set: Variable name must begin with a letter.
【问题讨论】:
-
学习一点tcl,否则你会很难正确使用expect。