一、安装expect
brew install expect
报错:
Error: No such file or directory @ rb_sysopen
brew install rb_sysopen
安装完报错的依赖,再重新运行brew install命令安装就不再报错
二、使用shell脚本
#! /usr/bin/expect -f
set timeout 30
set userName root
set host 192.168.0.0
set passwd 0000000
spawn ssh $userName@$host
expect {
"(yes/no)?" {
send "yes\n"
expect "password:"
send "$passwd\n"
}
"password:" {
send "$passwd\n"
}
}
interact
添加脚本可执行权限
sudo chmod +x login.sh
执行脚本:
./login.sh
报错记录:
报错:spawn: command not found
需要把#!/usr/bin/expect -f 要写在第一行
或者和启动方式有关系
shell运行的5种方式
第一种使用绝对路径执行
第二种使用相对路径执行,如./的方式
第三种使用 sh命令来执行 格式 sh 脚本名 不需要执行权限 -x参数(显示执行过程)
第四种使用 . (空格)脚本名称的方式执行 不需要执行权限 . a.sh
第五种使用 source 脚本名称 不需要执行权限(主要用于生效配置文件)
这里推荐使用第二种方式