shell 直接使用$1 $2 来取得参数
expect 使用 set name [lindex $argv 1] set host [lindex $argv 2]
.语法的问题。由于脚本头#!只能识别一种脚本,所以怎么让shell识别expect?有一种方式是利用<<将需要的expect脚本输入到os上的expect编译器。shell脚本例子:
......shell command......
expect<<EOF
....expect command....
EOF
......shell command......
除了中间的expect command(就是我们需要的交互),其余的都是shell的相关命令语法。这里需要提醒的是,
<<EOF
内容
EOF
不要忘记这个结构。功能是将内容输出到标准输入。这里EOF可以是任何别的字符(没有测试过有没有非法字符)。