Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >在shell里面嵌套expect命令语句

在shell里面嵌套expect命令语句

作者头像
染指流年
发布于 2023-03-13 08:17:28
发布于 2023-03-13 08:17:28
1.1K00
代码可运行
举报
文章被收录于专栏:Mr.WangMr.Wang
运行总次数:0
代码可运行

1.在/bin/bash脚本内使用expect命令格式如下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
示例:
#!/bin/bash
expect <<!      #在bash脚本中嵌套 expect 命令以 <<! 开始
此处为expect命   #中间为需要执行的 expect 命令
!               #在bash脚本中嵌套 expect 命令以 ! 结束

2.一个简单的脚本嵌套expect例子

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/bin/bash
d1=$(date "+%Y-%m-%d")
/bin/expect <<!      #expect命令的执行路径
set timeout 30       #等待30秒
spawn bash -c "/bin/scp /home/postgres-backup/${d1}_* root@10.1.0.42:/home/ > /dev/zero" 
                    ⬆#此处为expect执行的命令
expect "password:"   #监测spawn返回的信息里面是否包含'password:'
send "123456\r"      #如果上一条里面包含'password:'那么输入123456,\r 是换行
#expect eof          #执行完 spawn 命令后返回当前控制台。
#interact            #执行完 spawn 命令后留在对方控制台,比如ssh情景,需要留在ssh的机器上面
!                    #expect命令执行完,以 ! 结束

3.注意事项

如果 expect 命令里面包含 通配符,例如上面的例子里面的 * ,这时需要在 spawn 后面加上 bash -c 参数即可,反之亦然。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-05-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
shell expect权威指南和实战
我们通过Shell可以实现简单的控制流功能,如:循环、判断等。但是对于需要交互的场合则必须通过人工来干预,有时候我们可能会需要实现和交互程序如telnet服务器等进行交互的功能。而expect就使用来实现这种功能的工具。
sunsky
2020/08/20
2.1K0
Linux 命令(239)—— expect 命令
expect 是一个自动化交互套件,主要应用于执行命令时,以交互形式按照要求输入指定字符串,实现自动交互。
恋喵大鲤鱼
2023/01/07
3.3K0
Linux命令(30)——scp命令
scp(secure copy)命令是一个基于SSH安全的进行远程文件拷贝命令,用于在Linux下进行远程拷贝文件,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp支持对传输的数据进行加密。
恋喵大鲤鱼
2018/08/03
3.7K0
分发系统——expect 原
(adsbygoogle = window.adsbygoogle || []).push({});
阿dai学长
2019/04/03
5510
expect shell 脚本记录
expect是一个自动化交互套件,主要应用于执行命令和程序时,系统以交互形式要求输入指定字符串,实现交互通信。
郭顺发
2021/12/17
8660
shell脚本快速入门之-----深入介绍Expect免交互
spawn 启动追踪 —> expect 匹配捕捉关键字 ——> 捕捉到将触发send 代替人为输入指令—> interact /expect eof
不吃小白菜
2020/09/03
2.4K0
Linux expect详解
2018-07-11 分类:Linux Shell / 系统运维 / 编程开发 阅读(6670) 评论(0) 
拓荒者
2019/06/21
3.3K0
Linux expect详解
shell项目-分发系统-expect
一、什么是分发系统?(循序渐进) 服务上线,这个词应该不陌生,公司内部一般都会有很多服务器,随着业务的不断发展,我们需要不断的去调整服务器的各项配置来适配现在的需求,但是server很多不可能一台一台的去修改,浪费人工和时间,这时候我们需要一个系统,这个系统可以帮助我们把更新的配置更新到每台服务器。 二、远程登录 2.1 环境需求 模板机 线上的server 2.2 模板机配置 [root@zhdy-03 ~]# yum install -y expect 2.3 自动远程登录,执行命令 vim main
老七Linux
2018/05/09
1.4K0
expect 实现自动化命令下发
随着业务增长需要管理的主机数量也随之增多,在很多情况下需要对批量的主机进行配置变更,然而一台台的修改主机的配置显然是不现实的,也不符合当下运维趋势。能用机器实现的就不要以人肉的方式做无用功,向自动化运维方向迈进。接下来介绍如何使用 expect 实现对批量 Linux 主机和网络设备的命令下发配置。
Kevin song
2020/12/22
8300
Linux之expect工具免交互式shell脚本执行
Linux之expect工具是一个根据脚本与其他交互式程序进行交互。通过在脚本中设定期望值和响应值进行交互操作。主要应用于执行命令和程序时,系统以交互形式要求输入指定字符串,实现交互通信。 以SSH KEY 生成以及发送到远程服务器为例简单介绍下expect工具 expect 启用选项: -c执行脚本前先执行的命令,可多次使用-ddebug模式,可以在运行时输出一些诊断信息,与在脚本开始处使用exp_internal 1相似。-D启用交换调式器,可设一整数参数。-f从文件读取命令,仅用于使用#!时。如果文件
友儿
2022/07/27
1.2K0
Linux expect用法介绍
1.expect是linux中一个交互命令,一般在 /usr/bin/expect路径下,如果该路径未加入到环境中需要先添加,其作用场景常用于交互执行输入指令
瑾诺学长
2020/08/13
5.1K0
Shell脚本和expect实现自动交互
expect是一个自动交互功能的工具,可以满足代替我们实际工作中需要从终端手动输入某些内容来使得程序或命令继续运行的目的。如安装软件是时的一些提示,ssh远程主机执行命令时需要多次输入密码的情况
剧终
2020/08/27
1.5K0
expect java,Expect 使用详解「建议收藏」
expect是Unix系统中用来进行自动化控制和测试的软件工具,由Don Libes制作,作为Tcl脚本语言的一个扩展,应用在交互式软件中如telnet,ftp,Passwd,fsck,rlogin,tip,ssh等等。该工具利用Unix伪终端包装其子进程,允许任意程序通过终端接入进行自动化控制;也可利用Tk工具,将交互程序包装在X11的图形用户界面中。
全栈程序员站长
2022/11/15
3K0
expect自动交互脚本:简化你的自动化任务
在日常的 Linux 系统管理和自动化任务处理中,经常会遇到需要自动登录到服务器并执行一系列命令的情况,例如批量部署更新、监控日志等。手动操作不仅耗时耗力,而且效率低下,特别是当涉及到多台服务器时。
南山竹
2024/06/28
2770
expect自动交互脚本:简化你的自动化任务
Linux expect 自动交互脚本用法
最近用到自动交互脚本进行数据库备份,以前虽然也有用来使用 ftp 远程获取文件,还来没有系统记录过,趁这次机会总结一下。
Li_XiaoJin
2022/06/12
1.8K0
Linux 下自动应答工具 Expect 使用指南
现代的 Shell 对程序提供了最小限度的控制(程序的开始/停止/关闭等),而把交互的特性留给了用户。这意味着有些程序,你不能非交互的运行,比如说 passwd 命令。有一些程序可以非交互的运行,但在很大程度上丧失了灵活性,比如说 fsck 命令。这表明 Unix 的工具构造逻辑开始出现问题。Expect 恰恰填补了其中的一些裂痕,解决了在 Unix 环境中长期存在着的一些问题。
iMike
2021/03/10
1.8K0
expect快速入门
expect是一个自动化交互式应用程序的工具,所以expect可以用来处理交互的命令。借助expect,我们可以将交互过程写在一个脚本上,使之自动化完成。形象的说,ssh登录,ftp登录等都符合交互的定义。expect含有利用正则表达式进行模式匹配以及通用的编程功能,允许简单的脚本智能地管理如下工具:telnet,ftp和ssh(这些工具都缺少编程的功能),宏以及其它程序。expect脚本的出现使得这些老的软件工具有了新的功能和更多的灵活性。
端碗吹水
2020/09/23
1K0
20.28 expect脚本远程登录
expect脚本远程登录 yum install -y expect 自动远程登录 [root@aminglinux-02 sbin]# vim 1.expect #! /usr/bin/expect set host "192.168.133.132" set passwd "123456" spawn ssh root@$host expect { "yes/no" { send "yes\r"; exp_continue} // "password:" { send "$pass
运维小白
2022/01/06
1.2K0
# Linux expect命令详解
在Linux系统中,expect 是一款非常有用的工具,它允许用户自动化与需要用户输入进行交互的程序。本文将深入探讨expect命令的基本语法、使用方法以及一些最佳实践。
修己xj
2023/12/04
4470
# Linux expect命令详解
Linux之expect交互语言命令
****前言**** 记得在去年在蝴蝶脚本已经看到过expect,只不过没有去留意它是什么,是干什么的,然而今天去了解了,并利用它来写自动化交互脚本。在服务器开发中,有时候需要同步文件(scp),远程服务器(ssh)等等,难免要进行密码的检验,这就麻烦了,不过认识expect就有解决方案啦,那么我们来认识一下吧~~~ ---- ****expect简介**** expect是Linux脚本编程工具语言,用来实现自动和交互式任务进行通信,从而不用手动处理。换句话说就是这些命令和程序是期望从终端得到输入,一
AlicFeng
2018/06/08
2K0
相关推荐
shell expect权威指南和实战
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文