在 Expect 脚本中处理多个衍生进程

2023-12-11

这是我的预期脚本的用例(我拥有的少数几个之一)

我想运行多个sed通过 ssh 命令。它就像预构建环境设置一样。 我想运行这样的东西:-

#!/usr/bin/expect
set timeout -1

spawn -noecho bash -c "ssh -t user@host 'sed -i <some_stuff1> <file1>'"
spawn -noecho bash -c "ssh -t user@host 'sed -i <some_stuff2> <file2>'"
spawn -noecho bash -c "ssh -t user@host 'sed -i <some_stuff3> <file3>'"

expect {
  -re ".*sword.*" {
     exp_send "$env(PASS_WORD)\n"
     exp_continue
  }
}

但只有最后sed命令将执行。第 1 条和第 2 条将被跳过。

我错过的隐藏宝石可能是什么?

这是我到目前为止所看到的,但没有帮助

  • 处理expect脚本中的多个语句
  • Expect脚本:如何处理两个进程?
  • 同时处理多个进程 - Safari 在线图书

你真的不需要multiple (means parallel) spawn here.

#!/usr/bin/expect

set timeout 60

set cmds [list "ssh host1 ..." "ssh host2 ..." "ssh host3 ..."]

foreach cmd $cmds {
    spawn -noecho bash -c $cmd
    expect {
        -nocase "password" {
            exp_send "$env(PASS_WORD)\r"
            exp_continue
        }
        eof { wait } ; # at this time the last spawn'ed process has exited
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Expect 脚本中处理多个衍生进程 的相关文章

  • expect/spawn小记

    usr bin expect set timeout 3 spawn ssh l root 10 239 81 207 expect 34 passwd 34 send 34 123456 r 34 interact
  • __builtin_xxx指令学习【1】__builtin_expect

    builtin expect是GCC编译器提供的一个内置函数 xff0c 用于告诉编译器一个分支的执行概率 xff0c 以便编译器在生成机器码时进行优化 它的语法如下 xff1a span class token function buil
  • 【量化分析】用mplfinance显示交易图时,处理 Expect data.index as DatetimeIndex?

    目录 一 说明 二 程序代码和出错描述 三 合理化建议 3 1 读入数据时指定索引 3 2 读入数据后 xff0c 使用数据前指定日期 xff08 时间戳 xff09 索引 一 说明 我打算从比特币数据中获取烛台图 这是我在加载 csv 文
  • gtest中ASSERT与EXPECT断言的区别

    参考资料查找到ASSERT断言与EXPECT断言的区别 xff1a ASSERT 系列的断言 xff0c 当检查点失败时 xff0c 退出当前函数 xff08 注意 xff1a 并非退出当前案例 xff09 EXPECT 系列的断言 xff
  • ITERM2 自动登录跳板机脚本(多跳、带动态TOKEN)

    代码如下 设置方式是 iterm2 preference Profiles 新建一个profile 并设置Name为a Command为 Users XXX Desktop a sh 在sen text as start内传入4个参数 US
  • 在 shell 脚本中使用expect

    我需要传递两个参数给expect 第一个是要执行的命令 第二个是密码 这是我的期望 sh usr bin expect spawn lrange argv 0 0 expect password send lindex argv 1 int
  • 在定界文档中使用expect命令

    对于以下微小的期望脚本 其函数已添加到 bash 配置文件中 chai expect lt lt EOF spawn ssh myuser myserver expect send mypassword r EOF We get bash
  • 预期:没有这样的变量[关闭]

    Closed 这个问题需要调试细节 目前不接受答案 我开始使用expect 我有一个简单的脚本 但我有一个问题 我想初始化一个第一个字符为 的变量 set mystring THIS IS MY STRING 所以我得到一个错误 因为exp
  • 如何从期望脚本中转义异常/唯一字符?

    在期望脚本中 我可以设置任何命令或字符以在远程计算机上运行它 但可悲的是 expect 无法发送与expect 脚本中定义的相同的字符 例如 我想从expect脚本运行这一行 以便更改IP地址10 10 10 10 to 1 1 1 1 e
  • 正则表达式在 Expect 缓冲区中查找字符串

    我正在尝试找到一个可匹配转义字符字符串的正则表达式 Expect 响应 请参阅这个问题 和一个六位数字 第一个字符为字母数字 这是我需要识别的整个字符串 r n u001b 1 14HX76196 最终我需要提取字符串 X76196 这是我
  • 我可以使用heredoc在bash中输入密码吗?

    我了解 RSA 身份验证 但出于我的目的 我想使用heredoc 来指定密码 我想要类似下面的东西 但我无法让它工作 这可能吗 bin bash echo n Enter Password read s password ssh myhos
  • 使用 Expect 自动执行 2 个脚本之间的交互

    我有两个简单的脚本 我需要它们使用第三个脚本自动相互交互expect script script1 sh bin bash echo s1 started echo question1 read echo got REPLY echo qu
  • 使用expect脚本从远程机器执行ssh

    我是expect脚本的新手 并且有一个用例 在该用例中 我需要从已经使用expect脚本完成ssh的机器上执行ssh 这是我的代码片段 usr bin expect f set timeout 60 spawn ssh email prot
  • 在 Bash 脚本中使用 Expect 为 SSH 命令提供密码

    我正在尝试使用expect在 Bash 脚本中提供 SSH 密码 提供密码是可行的 但我并没有像我应该的那样进入 SSH 会话 它又回到了 Bash 我的脚本 bin bash read s PWD usr bin expect lt
  • 如何使用 Expect 为 Perl 脚本输入密码?

    我希望在运行安装脚本时自动输入密码 我在 Perl 中使用反引号调用了安装脚本 现在我的问题是如何使用输入密码expect或者是其他东西 my op install sh f my conf p my ip s my server 执行上述
  • 将 bash 数组传递给 Expect 脚本

    我有一个 bash 脚本 它像这样调用 Expect 脚本 SCRIPTS DIRECTORY my expect script sh my bash array 看起来我可以传递一个变量并使用它 对于这个例子 变量似乎是在 lindex
  • 生成后如何在expect shell脚本中获取子进程pid

    脚本的一部分a exp usr bin expect spawn ssh qTfnN D port user host expect assword 我怎样才能得到pid子进程 ssh 如果我在 bash shell 中执行这些 而不是在脚
  • 循环提示输入另一个密码时出现问题

    我需要一些关于 EXPECT 脚本的帮助 我正在尝试在访问大量主机之前自动登录 并在用户错误输入密码时进行处理 我首先获取用户名和密码 然后针对特定主机对其进行验证 如果密码无效 我想循环并再次询问用户名和密码 我正在尝试这个 省略前面几行
  • 期望脚本在单独调用时有效,但不能作为盐状态

    我正在尝试通过expect 进行scp 和ssh 操作 如果我直接从终端调用下面的脚本 则它可以工作 usr bin expect myexpect sh但是当我使用 salt 运行它时 第一个 scp 命令在第二个 ssh 失败的地方起作
  • 期望 ssh 脚本返回无效命令名

    我正在尝试编写一个 Expect 脚本 该脚本将 ssh 进入服务器 发送 sudo su 然后检查 iptables 状态并将输出放入服务器上的日志文件中 下面是脚本 1 usr bin expect 2 exp internal 1 3

随机推荐

  • 使用 urllib2 登录网站 - Python 2.7

    好的 我将其用于 reddit 机器人 但我希望能够弄清楚如何登录任何网站 如果这有道理的话 我意识到不同的网站使用不同的登录表单等 那么我如何找出如何针对每个网站进行优化呢 我假设我需要在 html 文件中查找某些内容 但不知道是什么 我
  • JTextArea 作为控制台

    我在下面发布了两段代码 两个代码单独工作都很好 现在 当我运行 Easy 文件并单击 开始 按钮时 我希望实现 AddNumber 类 我的意思是说 除了在控制台上运行 AddNumber 之外 有什么方法可以让 AddNumber 在单击
  • 如何让 fwrite() 不加双引号?

    我使用以下命令读取了一个在其字段中包含 html 代码的 csv 文件fread 对其进行一些维护并将生成的数据表写入文件中fwrite 问题是现在所有的 html 都充满了四重引号 例如colspan 7 有的是qmethod参数 但我不
  • Visual Studio Online Build 将 git 输出视为错误

    我在 Visual Studio Online 中的构建尝试通过以下方式部署我的 Azure 网站Kudu 该脚本工作正常 并且部署也已完成 但由于某种原因 VSO 将 git 输出视为错误 并声明整个构建失败 看看下面的屏幕截图 一些细节
  • ggplot箱线图的位置躲避警告?

    我正在尝试使用以下代码使用 ggplot2 制作箱线图 p lt ggplot data aes d score reorder d names d scores median geom boxplot 我有称为名称的因素和称为分数的整数
  • 是否可以在 Magento 中以编程方式发送电子邮件?

    是否可以在 Magento 中以编程方式发送电子邮件 也许从自定义模块中的控制器中 您可以获取模板 填充其变量并发送电子邮件吗 Thanks 绝对地 以下是 Checkout 帮助程序的示例 mailTemplate Mage getMod
  • 设置 TabPage 标题颜色

    问候 我有一个选项卡控件 我希望其中 1 个选项卡的文本颜色在事件发生时更改 我找到了类似的答案C TabPage 颜色事件 and C Winform 如何设置 TabControl 而不是选项卡页 的基色但使用这些设置所有颜色而不是一种
  • PHP网站打开时总是显示空白页面,没有错误

    一 前提 PHP在Win2003 STD R2 SP2上加载在IIS6上 PHP 5213使用FastCGI MySQL 5145 客户向我发送了网站文件 我将其解压缩到C InetPub wwwroot
  • 为什么这个 Haskell 代码永远不会终止?

    我最近写了一些 Haskell 代码 但它永远不会终止 当我仔细检查我的代码后 问题归结为以下代码片段 main IO main print let a 10 in let a a in a Int 我想这一定与 Haskell 的懒惰有关
  • Always_comb 中的 SystemVerilog“if”语句“不是纯粹的组合逻辑”错误

    我很困惑 并且有点沮丧 我花了很多时间在 Modelsim 中研究一些 SystemVerilog 我已经达到了可以在我的硬件上测试它的某个阶段 但是在 Quartus 中编译不成功 我确实知道这可能会发生 但在这种情况下我的错误似乎没有意
  • 如何强制 Laravel 项目对所有路由使用 HTTPS?

    我正在开发一个需要安全连接的项目 我可以通过以下方式设置路由 uri 资产以使用 https Route get order details id uses gt OrderController details as gt order de
  • 防止EditText自动聚焦

    我有一个 Android 活动 有一个EditText在整个布局中 由于某种原因 每当活动开始时 键盘就会出现 我努力了all以下事项 将这两个放入OnStart FindViewById
  • R 图:如何使用 mtext 获取 las=1 的顶部对齐垂直标签

    我正在尝试使用在垂直轴上获得标签mtext水平阅读 las 1 并且位于轴的顶部 我的尝试是使用las 1 adj 1 当我不指定时我可以获得所需的展示位置las 1 但是一旦我添加las 1论证adj 1放置消失 这是带有代码的图片 左图
  • R:使用网格的馈送功能

    我正在使用 R 编程语言 我编写了这个循环 它在随机选择的输入 random 1 random 2 random 3 random 4 split 1 split 2 split 3 中评估以下 函数 实际上是一个 循环 100次 load
  • YouTube URL 的正则表达式

    我正在使用以下正则表达式来验证 YouTube 视频share url s var valid http youtube com youtu be alert valid test url return false 我希望正则表达式支持以下
  • python对象列表,根据对象属性降序排序

    我有一个对象列表 我需要按对象属性之一对其进行排序 我可以使用以下代码按升序排序 list1 sorted list1 key lambda object1 object1 fitness 但是 这按升序对列表进行排序 而我需要做的是按降序
  • MediaRecorder.ondataavailable - 数据大小始终为 0

    我正在尝试使用 Web API Media Recorder 在浏览器中录制用户的声音 在此阶段 我对录制后的音频所做的就是将其添加到音频元素的源中并进行播放 当我停止录音机时 会触发 ondataavailable 事件 但数据大小为0
  • Java 泛型 - 为什么构造函数中的这个赋值是非法的?

    为什么我在这段代码中遇到编译器错误 我如何解决它 public class Container
  • Django - ImportError:没有名为 apps 的模块

    我正在 djangoproject com 网站上尝试 Django 教程 但是当我到达执行第一个 makemigrations polls 的部分时 我不断收到此错误 导入错误 没有名为 apps 的模块 Traceback most r
  • 在 Expect 脚本中处理多个衍生进程

    这是我的预期脚本的用例 我拥有的少数几个之一 我想运行多个sed通过 ssh 命令 它就像预构建环境设置一样 我想运行这样的东西 usr bin expect set timeout 1 spawn noecho bash c ssh t