预计脚本问题

2023-11-22

我试图通过期望完成一项简单的工作。我想在 Linux VM 上使用“ssh-keygen”命令创建 ssh 密钥。我的下面的期望代码看起来很简单,但它不起作用:

#!/usr/bin/expect

spawn ssh-keygen -t rsa
expect -exact "Enter file in which to save the key (/root/.ssh/id_rsa): "
send -- "\r"
expect -exact "Enter passphrase (empty for no passphrase): "
send -- "\r"
expect -exact "Enter same passphrase again: "
send -- "\r"

我不想使用密码。印地语打字"\r"用于“Enter”键操作。 我尝试运行这段代码"#!/usr/bin/expect -d",我发现它与我提到的字符串不匹配。像下面这样:

...
expect: does "" (spawn_id exp6) match exact string "Enter file in which to save the key (/root/.ssh/id_rsa): "? no
....

所以我认为因为它无法匹配模式,所以我的脚本失败了。 问题是,为什么它无法匹配模式。我在用"-exact"但它仍然与模式不匹配。我试着玩弄"-re"但我认为我不擅长 TCL 正则表达式。

你能帮忙吗。 谢谢。


生成的程序可能会发送比exactly你想要匹配什么。这就是正则表达式匹配如此有用的原因。

尝试这个:

spawn ssh-keygen -t rsa
expect -re {Enter file in which to save the key (/root/.ssh/id_rsa): $}
send -- "\r"
expect -re {Enter passphrase (empty for no passphrase): $}
send -- "\r"
expect -re {Enter same passphrase again: $}
send -- "\r"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

预计脚本问题 的相关文章

  • 使用 GitHub 时防止将大文本文件添加到提交

    我们想要防止 非常大的文本文件 每个文件 gt 50MB 被提交到git代替git lfs 因为它们夸大了 git 历史 问题是 其中 99 大小差异的原因 这些是 YAML 文件 它们支持通过 Base64 编码进行二进制序列化 我们无法
  • 在docker镜像中运行多个脚本

    您好 我想知道是否可以在 docker 容器启动时自动同时运行两个脚本 第一个脚本必须运行客户端应用程序 第二个脚本必须运行服务器应用程序作为后台 You can use CMD在你的Dockerfile https docs docker
  • 尝试 SSH 时设备的 ioctl 不合适

    我正在尝试通过 SSH 连接几台服务器并尝试获取sudo l每个服务器的输出 下面是我正在执行的脚本 bin bash serverlist tmp servers while IFS read r server netgroup user
  • 命令行参数中的“-”(破折号)有什么魔力?

    例子 创建 ISO 映像并将其直接刻录到 CD mkisofs V Photos r home vivek photos cdrecord v dev dev dvdrw 更改到上一个目录 cd 侦听端口 12345 并解压发送到该端口的数
  • 回车前清除行

    我想在一行中打印一个进度 所以我使用回车符 问题是我的进步不是增加 gt 这意味着第一个打印可能是Processing Foo Bar Baz下一个打印可能是Processing Foo 简单回车的问题是第二次打印将是重叠的通过第一张打印
  • Bash 中 $() 和 () 之间的区别

    当我打字时ls l echo file 支架的输出 这只是简单的回显 被获取并传递到外部ls l命令 就等于简单的ls l file 当我打字时ls l echo file 我们有错误 因为不能嵌套 内部外部命令 有人可以帮助我理解之间的区
  • 变量作为 bash 数组索引?

    bin bash set x array counter 0 array value 1 array 0 0 0 for number in array do array array counter array value array co
  • sed-删除不包含模式的行

    我很惊讶我在 SO 上找不到与此类似的问题 如何使用 sed 删除所有不包含特定模式的行 例如 我有这个文件 cat kitty dog giraffe panda lion tiger 我想要一个 sed 命令 当调用该命令时 它将删除所
  • 具有非阻塞读取功能的 Bash 脚本

    我想使用命名管道将一些数据发送到根进程 这是脚本 效果很好 bin sh pipe tmp ntp if p pipe then mknod m 666 pipe p fi while true do if read line lt pip
  • bash 自动完成:添加可能完成的描述

    是否可以使 bash 自动完成功能看起来像 Cisco IOS shell 中一样 我的意思是为每个完成添加简短的描述 如下所示 telnet 10 10 10 TAB Pressed 10 10 10 10 routerA 10 10 1
  • 别名在 Bash 脚本中不起作用[重复]

    这个问题在这里已经有答案了 我有一个可执行文件command sh bin bash alias my command echo ok my command 我的终端是bash 当我像这样运行时 command sh 效果很好 当我像这样运
  • execlp 多个“程序”

    我想运行类似的东西 cat file tar base64 myprogram c base64 d tar zvt I use execlp运行该进程 当我尝试运行类似的东西时cat它有效 但如果我尝试运行base64 d tar zvt
  • “grep -q”的意义是什么

    我正在阅读 grep 手册页 并遇到了 q 选项 它告诉 grep 不向标准输出写入任何内容 如果发现任何匹配 即使检测到错误 也立即以零状态退出 我不明白为什么这可能是理想或有用的行为 在一个程序中 其原因似乎是从标准输入读取 处理 写入
  • 如何在bash中列出所有后台pid

    要么我无法正确表达我的搜索 要么答案不容易找到 但我正在尝试找出如何列出我的所有后台任务 PID 例如 到目前为止 我发现要列出我们使用的最后一个 PID 但现在我想列出之前任务的 PID 如果存在 但我找不到如何做到这一点 最终我想列出我
  • 在 shell 脚本中连接命令字符串

    我正在维护一个现有的 shell 脚本 它将命令分配给 shell 脚本中的变量 例如 MY COMMAND bin command dosomething 然后接下来 它通过执行以下操作将 参数 传递给 MY COMMAND MY ARG
  • 如何替换“docker run”命令中的变量值

    我正在使用 bash 脚本并尝试分配指纹值 如下所示 export FINGERPRINT D0 19 C5 80 42 66 56 AC 6F docker run rm i v var run docker sock var run d
  • 如何在 {expect} 脚本中创建“循环”语句?

    假设是 这是脚本 usr bin expect set a test 我想在这个脚本中创建一个循环 以便它可以打印值 a 前面有一个基于循环的数字 所以如果我想让它循环3次 最终产品将变成 1 test 2 test 3 test 您可以使
  • 伊迪德信息

    重新定义问题 有什么方法可以获取所连接显示器的序列号吗 我想收集显示器的Eid信息 当我使用 logverbose 选项运行 X 时 我可以从 xorg 0 log 文件中获取它 但问题是 如果我切换显示器 拔出当前显示器 然后插入另一个显
  • 我的 unix 脚本出了什么问题

    bin bash while echo n Player s name read name name ZZZ do searchresult grep name playername if searchresult 0 then echo
  • 如何将命令作为参数传递给 ssh [重复]

    这个问题在这里已经有答案了 我的需要是让这个命令起作用 sshpass p XXXX ssh oStrictHostKeyChecking no email protected cdn cgi l email protection sudo

随机推荐

  • 将指针传递给结构数组时出错

    include
  • Bootstrap 多选不起作用

    我正在尝试使用多选 Bootstrap 我使用了以下代码 该代码也可以在他们的网站上找到 http davidstutz github io bootstrap multiselect 它显示了多选按钮 并且由于我已经选择了 奶酪和意大利辣
  • 没有 ControlContainer 的提供者和 ControlContainer 没有提供者

    我正在开发一个使用 Angular2 的应用程序 我正在尝试在我的应用程序中使用反应式表单 但遇到了一些错误 第一个错误是关于 NgControl 的 如下所示 没有 NgControl 的提供者 div 类 col md 8 错误 gt
  • C++ sizeof Vector 是 24?

    我只是在闲逛并学习向量和结构 有一次 我尝试以字节为单位输出向量的大小 这是代码 include
  • Android Gradle 插件 0.13 和 android-apt 1.3 出现错误

    我刚刚将我的 android gradle 插件从 0 12 更新到 0 13 而且我已经下载了gradle 2 1 然后 我尝试使用 beta 版的 android studio 0 8 9 但根据http tools android c
  • 抑制 Visual Studio 输出窗格的输出 (C++)

    当我在 Visual Studio 调试器中运行 Win32 项目时 我得到了大量关于加载了哪些 DLL 第一次机会异常等信息 有没有办法可以抑制这个输出 有一天 我可能想知道 C Windows SysWOW64 ntdll dll 何时
  • 如何获取 Android 手机所有者的名字和姓氏?

    有没有办法获取 Android 手机所有者的名字和姓氏 我在网上搜索过 但没有运气 我偶然发现thisStackoverlow 中的问题 但这正在获取所有联系人的名字和姓氏 我需要的只是获取所有者的名字和姓氏 我认为这仅适用于 ICS 及以
  • Python 社交身份验证 NotAllowedToDisconnect 位于 /disconnect/facebook/1/

    我正在尝试在 Django 应用程序中将注销与 Python Social Auth 一起使用 但我得到了 NotAllowedToDisconnect at disconnect facebook 1 这些是我的设置 SOCIAL AUT
  • 什么是基于文件的数据库?

    我参加了有关关系数据库的课程 我被要求研究基于文件的方法与关系数据库相比的优势 我发现理解关系数据库更容易 但理解基于文件的系统却很困难 基于文件的系统是否与在 Windows 分层系统上存储文件相同 即存储在文件夹和目录下的文本文件 纯
  • Reactjs删除拼写检查属性

    我正在使用 ReactJS 来渲染我的 DOM 我想添加spellcheck false 文本输入上的属性 所以我这样做 render return div div
  • 检查是否启用第三方cookie

    我有一个应用程序需要检查客户端浏览器是否启用了第三方 cookie 有谁知道如何在 JavaScript 中做到这一点 技术背景 第三方通过 HTTP 不是 JavaScript 设置和读取 cookie 因此 我们需要向外部域发送两个请求
  • UTF8工作流程PHP、MySQL总结[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 我正在为拥有不同字母表的国际客户工作 因此我试图最终了解 PHP 和 MySQL
  • 在R中的文本文件中搜索字符串[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 是否有 R 函数可以在文本文件中搜索 s 字符串 像 unix grep 之类的东西 我想另一种选择是逐行读取文件 但想知道这样的函数是否可以绕过它
  • CSS 属性选择器:如何转义属性值中的换行符?

    我有一个链接href其值中包含回车符的属性 HTML 无法更改 a href Testing a 我最初认为反斜杠在字符串内部使用时可以用来转义回车符 U 000D 但后来在 CSS 规范中读到了这一点 任意字符 十六进制数字 换行符 回车
  • java更改DocumentListener中的文档

    I use a DocumentListener处理任何变化JTextPane文档 当用户输入我想删除的内容时JTextPane并插入自定义文本 无法更改其中的文档DocumentListener 这里提出了一个解决方案 在 Java 的
  • C# 中不触发事件修改 ComboBox SelectedIndex

    我的 C 应用程序有一个comboBox with a SelectedIndexChanged事件 通常 我希望该事件触发 但有时我需要该事件不触发 我的comboBox是一个MRU文件列表 如果发现列表中的文件不存在 则将该项目从列表中
  • java类加载器getResource中的前导斜杠(“/”)通向哪里?

    我有一个 jar foo jar 其根目录中有一个文件 1 txt 我尝试运行以下命令 MyTestClass class getClassLoader getResource 1 txt jar foo jar 是我在类路径中的所有内容
  • 我应该如何在.net core中设置mvcoptions.enableendpointrouting

    我已经添加了我厌倦的内容 我正在尝试在ConfigureServices方法中设置mvcoptions enableendpointrouting public void ConfigureServices IServiceCollecti
  • MVVM 中的 Window_Load 事件

    我需要编写一些在 WPF MVVM 中的 window load 期间执行的函数 每个按钮都有自己的要执行的命令 MVVM 模型中是否有适用于 window load 事件的命令 您将必须使用交互来执行此操作 即在事件上调用命令
  • 预计脚本问题

    我试图通过期望完成一项简单的工作 我想在 Linux VM 上使用 ssh keygen 命令创建 ssh 密钥 我的下面的期望代码看起来很简单 但它不起作用 usr bin expect spawn ssh keygen t rsa ex