关于expect
expect是一个自动化交互套件,主要应用于执行命令和程序时,系统以交互形式要求输入指定字符串,实现交互通信。
expect自动交互流程:
spawn启动指定进程–>expect获取指定关键字–>send向指定程序发送指定字符–>执行完成退出.
1 | yum install -y expect |
expect的常用命令:
1 | spawn 交互程序开始后面跟命令或者指定程序 |
ssh登录远程主机执行命令
1 | !/usr/bin/expect |
ssh远程登录主机执行命令,在shell脚本中执行expect命令
1 | #!/bin/bash |
expect send可能会出现invalid command name或 no such variable 没此变量的报错
将特殊符号进行转义,即[如语句里面特殊符号太多,转义太麻烦。
可以使用send – {}格式,将send的内容放到大括号中转义。
1 | send "awk 'BEGIN{FS=[ ,]} { print $2+$4 }' file\r " |
替换为
1 | send -- {awk 'BEGIN{FS=[ ,]} { print $2+$4 }' file} |