1.安装工具
需要使用except工具,expect是专门用来交互自动化的工具,但它有可能不是随系统就安装好的,有时需要自己手工安装该命令。
apt install expect 或 yum install expect
2.解决问题示例
有一个shell脚本,./absslclient.sh运行时会有如下情况:
需要在屏幕输入密码后继续,因此sslrun.sh脚本内容如下:
root@ftldap-virtual-machine:/opt/bianx# cat sslrun.sh
#! /usr/bin/expect
spawn ./absslclient.sh
expect "Enter PEM pass phrase:"
send "click1\n"
expect off
root@ftldap-virtual-machine:/opt/bianx#
注意:第一行是/usr/bin/expect,这个是选用解释器的意思,我们shell一般选的是 /bin/bash,这里不是
spawn: 指定需要将哪个命令自动化,这里我就写./absslclient.sh,按需修改即可
expect:需要等待的消息,这里根据屏幕提示信息写 "Enter PEM pass phrase:",可以按需修改
send:是要发送的命令
expect off:指明命令交互结束
运行命令可用:expect sslrun.sh