expect的模式
expect的模式其实就是对话模式:
expect # 期望什么
send # 我给你什么
比如:
expect "password: " # 碰到什么了
send "123456" # 我给你什么
expect有一个默认的超时时间,如果得不到你的输入,(expect期望的字符串),它就会直接执行后面的步骤。
#!/usr/bin/expect
set timeout 30
spawn ssh test@127.0.0.1
expect "password:"
send "123456\n"
interact
# interact命令可以让我们停留在远程主机上,如果没有这一句,登录后会立即退出,而不是停留在远程主机。
#!/usr/bin/expect
set timeout 30
spawn ssh root@127.0.0.1 "hostname"
expect "password:"
send "123456\n"
expect eof
# 如果不加这一句,上面的hostname将无效,登录后立即退回到本地主机;只有加了,才会打印远程主机的主机名,然后再退出到本地主机。
expect的模式的更多相关文章
- expect入门--自动化linux交互式命令
很多linux程序比如passwd,ftp,scp,ssh等自身并没有提供一种静默式的执行选项,而是依赖于运行时的终端输入来进行后一步的操作比如更改密码.文件上传.下载等.虽然有些编程语言如java嵌 ...
- expect-调试模式的使用
1.expect简介 Expect是一种TCL扩展性的语言,主要用于完成系统交互方面的功能,比如SSH.FTP等,这些程序都需要手工与它们进行互动,而使用Expect就可以模拟人手工互动的过程,是一种 ...
- Linux下使用expect实现跳板机自动跳转/免密登录/自动登录(转)
shell脚本实现ssh自动登录远程服务器示例: #!/usr/bin/expect spawn ssh root@192.168.22.194 expect "*password:&quo ...
- expect 知识与示例说明
expect 知识与示例说明 2012/04/10 chenxin 2019/07/07 update Chenxin 参考 https://www.cnblogs.com/yinghao1991/p ...
- shell登录 脚本 expect
作用 工作中,我们运行命令.脚本或程序时,这些命令.脚本或程序都需要从终端输入某些继续运行的指令,而这些输入都需要人为的手工进行. 利用expect,则可以根据程序的提示,模拟标准输入提供给程序,从而 ...
- 交互式shell编程
FQ #!/usr/bin/env shxfce4-terminal -x sudo python ./local/proxy.py 连续执行 gnome-terminal -x bash -c &q ...
- Linux下利用expect,不用交互模式,直接登陆远程主机
Linux环境下只有在机器20.200.254.18上ssh dataconv@20.200.31.23才能连接到23的机器,而且还需要输入密码(每次都需要输入地址,密码很烦),所以利用expect写 ...
- shell中的交互模式:expect
在shell开发中,我们连接FTP或者passwd或sudo等操作时,需要手动输入密码.对于自动化而言,这显然是不合适的.而expect的强交互模式解决了这个问题.工作中偶有涉及到这个,个人也是简单的 ...
- Federated Identity Pattern 联合身份模式
Delegate authentication to an external identity provider. This pattern can simplify development, min ...
随机推荐
- 阿里云 消息队列mq
使用阿里云消息队列 控制台地址:http://ons.console.aliyun.com/#/home/topic Demo: 支付消息mq工厂类: public class DfacePayCon ...
- VINS 检测回环辅助激光建图
最近接到一个任务,在激光检测回环失败时,比如黑色物体多,场景大等,可否利用视觉进行回环检测.如果只是检测回环,现有的许多框架都可以使用.ORB-SLAM本身就有单目模式,且效果不错.但是发现ORB在检 ...
- Vue-基础(一)
一.Vue中的常用指令 什么是指令? 指令就是vue中提供的一些对于页面和数据更为方便的操作, 指令就是以数据去驱动DOM行为的,简化DOM的操作 常用指令 v-text / v-html :用于为标 ...
- WPFの多屏幕问题
public MainWindow(string sysName, int timeState) { InitializeComponent(); //查找当前屏幕数量 ) { Dispatcher. ...
- XMPP即时通讯协议使用(十二)——基于xmpp搭建简单的局域网WebRTC
创建HTML和JS ofwebrtc.html <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" ...
- 如何打开mongo运行环境
新建一个文件夹,例如我的在E:\2016web\myapp\src\database 打开数据库 mongod --dbpath=E:/2016web/myapp/src/database 在新开一个 ...
- nodejs包高效升级插件npm-check-updates
一.安装 npm install -g npm-check-updates 或 cnpm install -g npm-check-updates 二.使用 ncu crypto ^0.0.3 → ^ ...
- 42th 逻辑的连续性 取决于 细节的理解-------------我是个厨子:类的调用vs 对象调用方法
类的调用vs 对象调用方法 class Cook5: '''这是一个厨师的类''' # 类是一系列对象相同的特征与技能的结合体 # 用变量表示特征(属性) ...
- TCP/IP的分层管理_01
1.TCP/IP协议族里最重要的一点就是分层.TCP/IP协议族按层次分别分为以下4层: 应用层,传输层,网络层和数据链路层. 应用层:决定了向用户提供应用服务时通 ...
- parse_str()函数怎么用?
php parse_str()函数 语法 parse_str()函数怎么用? php parse_str()函数表示将字符串解析成多个变量,语法是parse_str(string,array),如果未 ...