这可能是一个简单的问题,但是有一个简单的期望脚本,我已经添加了可执行位,似乎忽略了#!/ usr / bin / expect解释器行。 此外,似乎variables没有被设置,因为当我回应他们时,他们是空白的…
#!/usr/bin/expect -f set device "1.1.1.1" set user "testuser" spawn ssh $user@$device echo $device echo $user ls -lh -rwxr-xr-x root root testexpect.exp
感谢您的帮助社区!
PS我正在运行Debian Wheezy,通过apt-get install期待安装expect …谢谢
期望是基于Tcl语言,所以你不应该使用bash'echo' – 你应该使用'puts'来在屏幕上打印一些东西:
#!/usr/bin/expect -f set device "1.1.1.1" set user "testuser" spawn ssh $user@$device puts $device puts $user
你会得到这样的结果:
$ ./test.exp spawn ssh [email protected] 1.1.1.1 testuser
错误消息表明您正在使用显式的解释器运行命令,例如:
bash ./testexpect.exp
这会忽略“#!” 线。 无论启动脚本,只需要命名该文件(或明确表示expect ./testexpect.exp )。 如果你的 #! 行不好,你会得到/usr/bin/expect: bad interpreter: ...