--stdin表示可以用任意文件做标准输入

expect它主要的功能是给ssh进程加个壳,用来传递交互指令。

它的核心是spawn expect send set

spawn调用要执行的命令

expect等待命令提示信息的出现,也就是捕捉用户输入的提示:

send发送需要交互的值,替代了用户手动输入内容

set设置变量值

interact执行完保持交互状态

expect eof这个一定要加,与spawn对应表示捕获终端完成后退出

例子:

[root@ns2 ~]# cat test.sh 

#!/bin/bash

#

#!/bin/bash

#

expect < set timeout -1

spawn mysql -uroot -p

expect "password:"

send "123456\r"

expect "mysql>"

send "create database aaa;\r"

expect "mysql>"

send "exit\r"

expect eof

EOF