问题标签 [expect]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 是否有任何关于如何使用 expect4j 库的真实文档或代码示例?
谷歌代码项目页面上的文档非常薄。我想知道是否有任何关于使用expect4j的深入文档;代码示例也会有所帮助。
linux - 如何在 Linux tclsh 中通过光标键获取命令历史记录
可以通过在 TCL shell (tclsh) 中使用光标键(如向上箭头键)来获取命令历史记录。
我正在使用 linux 版本 2.6.21 在 Fedora 上运行 tclsh。
terminal - 如何自动控制终端?
我正在使用 20 个相同的模拟器(文本库 GUI,如 vi,快速刷新),我需要以非常相似的方式控制它们。例如输入一些命令字符串来启动/停止/配置模拟器。显示器很重要,我需要它们在终端上流动。目前我可以在单独的终端中自动启动每个。
但在那之后,我不知道如何自动控制它们。如果我在没有终端的情况下使用 expect 生成模拟器,我将无法查看输出。关于我该如何进行的任何建议,或者什么工具可以提供帮助?
multithreading - 在 Tcl 中,来自需要 Expect 的多个线程的 seg 错误
现在这里有一些有趣的东西。当我在 Tcl 调用中有多个线程时package require Expect
,我得到一个段错误。
例如
这不是一个好时机。有什么想法吗?
perl - Perl 期望 - 如何控制目标机器上的超时
我是perl的新手。我正在使用 perl expect 模块来生成远程系统。使用发送模块一个接一个地执行一组命令(比如 $exp->send("my command as string goes here\n")。问题是我执行的命令需要一些时间来处理。在所有之前命令完成远程机器超时,我回到我的主机提示符。你能帮我解决这个问题吗?
我还有一个问题。我有一个命令在执行后返回 2 个值(比如我正在远程机器上打印 2 个值)。我想捕获这两个值并使用发送模块作为参数传递给下一个命令。我该怎么做呢。
请帮我解决这个问题。
谢谢。
我刚刚发现了一些关于期望模块的信息。有一个 undef 选项可以与期望一起使用,例如 $exp->expect(undef)。这将无限期地等待并让所有命令完成它们的处理。但问题是,它不会将控制权返回给主机。还有另一种使用 expect 和 eof 的选项,它将等到遇到 eof 然后返回主机。虽然不知道如何使用它。我发现一个优雅的解决方案是使用 ssh 在远程机器上运行命令,而不是使用期望,在这种情况下我们不必处理超时。:)
ssh - 退出期望 {} 没有超时
我正在努力解决在 ssh 中自动输入密码的经典问题,并且像其他所有人一样,我在期待中跌跌撞撞。最后,我拼凑了一个可行的脚本:
该脚本仅由于该timeout 1
行而终止,没有它它只是挂起,并且仅通过用户交互(^C
)终止。
当该spawn
行是直接的 ssh 命令时,脚本会立即终止,但这不是您的直接 ssh。可能不同的是-f
使它在后台运行的选项(但我尝试了没有它的脚本无济于事)。
我读过interact
或者expect eof
可能会有所帮助,但我无法找到真正能做到的正确咒语。
我的问题(我认为)是如何制作一个期望脚本,它产生一个后台进程,在没有超时的情况下终止?
编辑:我应该预料到(没有双关语)“使用无密码 ssh 身份验证”的答案。虽然这是一个合理的建议,但在我的场景中它不是合适的解决方案:在受信任的环境中自动测试 vanilla 安装的系统,在该环境中向图像添加受信任的密钥是不可取的/不可能的。
shell - 如何让期望 -c 在单行而不是脚本中工作
跑步:
似乎不起作用,因为我仍然被要求输入密码。
如果我将它作为脚本运行,它运行正常。
我想在一行命令而不是脚本中运行它。有没有人有任何想法?
提前致谢
一种
我在下面回答了我自己的问题
perl - How do I use Expect to connect with SSH?
In my program I use Expect to run ssh
. My program is
But even if it is not able to spawn ssh
it is not printing Cannot spawn ssh to ip $ssh_ip_address
. Can you please help me understand why it does give the error message?
linux - 使用 Expect 通过 SSH 管理机器,但不能完成所有任务
*请不要堆积并告诉我只使用 SSH 密钥。如果它让你觉得这就是我正在做的事情,请假装我正在尝试远程登录。:-) *
我正在使用期望脚本通过 ssh 在我控制的一组服务器上运行一些常规命令。该脚本应该在每台机器上运行一组命令(例如 svn update ~/folderx\r")。我当前的脚本会执行我想要它做的所有事情......有时。其他时候它会在完成之前退出 ssh 连接最后几个命令。
关于如何使连接保持直到所有命令完成的任何想法?下面的代码成功登录,成功运行前两个命令左右(ap-get update 和其中一个 svn 更新),然后断开连接。
perl - 在 perl 中评估 Expect
我在 perl 中使用 Expect 连接到远程机器并执行某些功能。示例代码就像
即使第一个表达式失败,它也会等待 60 秒并执行第二个语句。我只是想检查一下,如果只有第一个语句通过,它应该继续。