最近尝试写一个自动安装某软件的shell脚本,需要人机交互,查了一下资料,看到众网友推荐expect,于是就去寻找expect的用法。
首先要安装tcl,spawn,expect。
shell脚本中用法如下
#!/bin/bash
echo "strat"
/usr/bin/expect << EOF
spawn ./build-ca
expect "Country" {send "\r"}
expect "State" {send "\r"}
expect "Locality" {send "\r"}
expect "Organization" {send "\r"}
expect eof
EOF
echo "finish"
由于expect 需要在/usr/bin/expect使用,如果单独使用的话,第一行的bash改成
#!/usr/bin/expect
注意,因为含有expect,不能这样运行脚本
source ./xx.sh
会报错的,应该
chmod a+x xx.sh
./xx.sh
我也没有深入研究,只想拿来用用,所以不多写了。