乱读天书, 不求甚解
周祎骏的个人云笔记
Toggle navigation
乱读天书, 不求甚解
主页
Linux:系统配置
Linux:用户管理
Linux:优化排错
Linux:进程调度
Linux:文件系统
Linux:网络
Linux:系统服务
Linux:安全
Linux:内核
容器:Docker
容器:containerd
容器编排:Kubernetes
IAC:Terraform
大数据:Hadoop
大数据:Zookeeper
大数据:Hbase
消息队列:rsyslog
消息队列:kafka
数据库:MySQL
数据库:MongoDB
搜索引擎:Elasticsearch
时序数据库:OpenTSDB
网站服务:Nginx
编程:Bash
编程:Perl
编程:Python
编程:C
编程:JAVA
编程:Rust
版本控制:gitlab
知识管理:docusaurus
常用小工具
关于我
标签
小工具 0.10 用expect 做自动交互
2016-06-13 23:42:39
67
0
0
admin
> 我们经常需要写一些需要自动交互的脚本,比如登录机器自动输密码。这时候我们可以使用expect命令 #注意: expect需要tcl 语言技巧 expect只能整行注释,不能只注释半行 *** #按顺序自动交互 ```bash !/usr/bin/expect set ip [lindex $argv 0] spawn bash -c "ssh user@$ip" expect "password" send "password\n" expect "login" send "id\n" #expect eof 有时候这个很重要,没有的话脚本直接结束,可能每跑完就中断了。有时候用sleep 1 exit ``` *** #在expect 用while,嵌套 ```bash #!/usr/bin/expect set timeout 5 set ip [lindex $argv 0] set wawa 1 spawn bash -c "ssh user@$ip" while { $wawa <= 1 } { expect { "login" {send "echo lala\n";sleep 1;} timeout { send_user "\ntimeout!\n"} "password" { send "password\n";sleep 1} "lala" { send "echo wawa\n";sleep 1; expect { "wawa" {send "echo the_sub_thing\n";} } } "the_sub_thing" { set wawa [expr {$wawa + 1}] ; send_user "$wawa\n";} } } ```
上一篇:
小工具 0.03 rsync
下一篇:
小工具 1.0 从命令行访问/下载网页 (curl/wget)
文档导航