Linux expect使用,用户交互的福音

经常遇到Linux需要用户交互的操作,而且是大量的重复操作,所以。。。。
expect 解决你的问题

如下就是一个简单的例子

写个 login.sh

#!/usr/bin/expect
set timeout 100
set password "123"
spawn ssh uname@hostname
expect "*password:"
send "$password\n"
interact

解释一下

#!/usr/bin/expect //这个是头部
set timeout 100 //这个是超时
set password “123” //这个是设置password变量
spawn ssh uname@hostname // spawn xxxx xxxx为要执行的命令
expect “*password:” //如果出现这个表达式的返回
send “$password\n” //则发送 password \n为回车
interact //允许交互,写上就行了

另外,这个sh脚本需要给执行x权限(chmod +x),并使用 ./login.sh 来执行,如果使用
sh login.sh 的话,会提示 spawn: command not found 等一坨 not found

你可能感兴趣的:(Linux)