专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-683-0016      微信咨询  |  联系我们

如何用expect写一个自动登录脚本_服务器

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/3/7 15:27:03       共计:3581 浏览

如何用expect写一个自动登录脚本?

1.安装expect

需要先安装tcl:apt-get install tcl

apt-get install expect

2.expect

使用

2.1一个简单的输入密码操作

#!/usr/bin/expect

set timeout 100

set password "123456"

spawn sudo rm -rf zzlogic

expect "root123456"

send "$password\n"

interact

说明:

第一行#!/usr/bin/expect表示使用expect的shell交互模式

set是对变量password赋值

set timeout 100:设置超时时间为100秒,如果要执行的shell命令很长可以设置超时时间长一些。expect超过超时时间没有监测到要找的字符串,则不执行,默认timeout为10秒

spawn在expect下执行shell脚本

expect对通过spawn执行的shell脚本的返回进行判断,是否包含“”中的字段

send:如果expect监测到了包含的字符串,将输入send中的内容,\n相当于回车

interact:退出expect返回终端,可以继续输入,否则将一直在expect不能退出到终端

2.2expect的命令行参数

[lindex $argv n]获得index为n的参数(index从0开始计算)

$argc为命令行参数的个数

[lrange $argv 0 0]表示第一个参数

[lrange $argv 0 3]表示第1到第3个参数

例如

scp_service.sh

文件,可以./

scp_service.sh

-rm来执行,这时是赋值了一个参数

set option [lindex $argv 0](获得第一个参数存到变量option中,参数是的index是从0开始计算的)

2.3if...elif...else...

expect支持if语句,

if {条件1} {

条件1执行语句

} elif {条件2} {

条件2执行语句

} else {

其他情况执行语句

}

说明:

1.if

的条件用{}来包含条件

2.if

和后面的{}必须有空格隔开

3.两个花括号之间必须有空格隔开,比如if {} {},否则会报错 expect:extra characters after close-brace

3.使用{来衔接下一行,所以if的条件后需要加左花括号{

4.else

不能单独放一行,所以else要跟在}后面

版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:三国演义七十四回至七十八回梗概_服务器 | ·下一条:90端口是什么_服务器

Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有