版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/EI__Nino/article/details/72980884
经常遇到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
。