英语法语西班牙语

Ad


OnWorks 网站图标

autoexpect - 云端在线

通过 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器在 OnWorks 免费托管服务提供商中运行 autoexpect

这是可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行的命令 autoexpect,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器

程序:

您的姓名


autoexpect - 通过观看会话生成一个 Expect 脚本

概要


自动预期 [ ARGS [ 程序 参数... ]

引言


autoexpect 监视您与另一个程序的交互并创建一个 Expect 脚本
重现您的互动。 对于直线脚本,autoexpect 可以节省大量时间
手动编写脚本。 即使您是 Expect 专家,您也会发现它
方便使用 autoexpect 来自动化交互中更无意识的部分。 这是
将大量的自动预期脚本剪切/粘贴在一起比从它们中编写它们要容易得多
划痕。 如果你是初学者,你可能什么也学不到
更多关于 Expect 的内容而不是如何调用 autoexpect。

使用 autoexpect 的最简单方法是从命令行调用它,不带参数。
例如:

% 自动期望

默认情况下,autoexpect 会为您生成一个 shell。 给定程序名称和参数,
autoexpect 产生那个程序。 例如:

% autoexpect ftp ftp.cme.nist.gov

生成的程序运行后,正常交互。 当您退出外壳时
(或您指定的程序),autoexpect 将为您创建一个新脚本。 默认情况下,
autoexpect 将新脚本写入“script.exp”。 您可以使用 -f 标志覆盖它
后跟一个新的脚本名称。

以下示例运行“ftp ftp.cme.nist.gov”并存储生成的 Expect 脚本
在文件“nist”中。

% autoexpect -f nist ftp ftp.cme.nist.gov

重要的是要了解 autoexpect 不保证脚本可以工作,因为
它必然要猜测某些事情——有时它会猜错。
但是,通常很容易识别和修复这些问题。 典型问题
是:

· 时机。 数量惊人的程序(rn、ksh、zsh、telnet 等)
并且设备(例如,调制解调器)忽略在之后“太快”到达的击键
提示。 如果你发现你的新脚本在一个地方挂了,试着添加一个
上一次发送之前的短暂睡眠。

您可以通过覆盖变量来强制执行此行为
“force_conservative”在生成的脚本的开头附近。 这个
“保守”模式使自动预期自动暂停(十分之一
一秒钟),然后再发送每个字符。 这安抚了我所知道的每个程序
的。

如果您只想快速让自己放心,这种保守模式很有用
问题是时间问题(或者如果你真的不关心有多快
脚本运行)。 可以在脚本生成之前强制使用相同的模式
使用 -c 标志。

幸运的是,这些时间点很少见。 例如,telnet 忽略
只有在输入其转义序列后才能使用字符。 调制解调器只忽略
字符在第一次连接到它们后立即。 一些
程序一直表现出这种行为,但通常会切换到
禁用它。 例如,rn 的 -T 标志禁用此行为。

以下示例以保守模式启动 autoexpect。

自动期望 -c

-C 标志定义了切换保守模式的键。 下面的例子
以 ^L 作为切换启动自动期望(在非保守模式下)。 (注意
^L 是按字面输入的 - 即输入一个真正的控制-L)。

自动期望 -C ^L

以下示例以 ^L 作为保守模式启动 autoexpect
切换。

自动期望 -c -C ^L

· 回声。 许多程序回显字符。 例如,如果您在
shell,autoexpect 实际看到的是:

你输入了'm',
电脑输入'm',
你输入了“o”,
计算机输入“o”,
你输入了'r',
电脑输入'r',
...

没有具体的程序知识,就不可能知道你是否
在输入下一个字符之前,等待看到每个字符的回显。 如果自动期望
看到字符被回显,它假设它可以将它们作为一个组发送
而不是按照它们最初出现的方式交错它们。 这使得
剧本读起来更舒服。 但是,可以想象它可能是不正确的,如果
你真的不得不等待看到每个角色的呼应。

· 改变。 Autoexpect 记录脚本中交互中的每个字符。
这是可取的,因为它使您能够对
什么是重要的,什么可以用模式匹配代替。

另一方面,如果您使用的命令的输出因运行而异,
生成的脚本不会是正确的。 例如,“日期”
命令总是产生不同的输出。 所以在使用 date 命令时
运行 autoexpect 是生成需要编辑的脚本的可靠方法
为了让它工作。

-p 标志将 autoexpect 置于“提示模式”。 在这种模式下,autoexpect 将
只查找程序输出的最后一行——通常是
迅速的。 这可以处理日期问题(见上文)和大多数其他问题。

以下示例在提示模式下启动 autoexpect。

自动期望 -p

-P 标志定义了一个切换提示模式的键。 下面的例子开始
autoexpect(在非提示模式下)以 ^P 作为切换。 请注意,^P 是
字面输入 - 即输入一个真正的控制-P。

自动期望 -P ^P

以下示例以 ^P 作为切换在提示模式下启动 autoexpect。

自动期望 -p -P ^P

其他 旗帜


-安静的 标志禁用由 autoexpect 产生的信息性消息。

-Q flag 命名一个引号字符,可用于输入自动期望的字符
否则会消耗,因为它们被用作切换。

以下示例显示了一些带有引号的标志,用于提供一种输入方式
从字面上切换。

自动期望 -P ^P -C ^L -Q ^Q

风格


我不知道是否有针对 Expect 程序的“风格”,但 autoexpect 绝对应该
不被视为任何风格的典范。 例如,autoexpect 使用 Expect 的特性
专门用于计算机生成的脚本。 所以不要尝试
忠实地编写看起来好像是由 autoexpect 生成的脚本。 这不是
有用。

另一方面,autoexpect 脚本确实显示了一些有价值的东西。 例如,你
可以看到任何字符串必须如何被引用才能通过运行在 Tcl 脚本中使用它
通过自动期望的字符串。

使用 onworks.net 服务在线使用 autoexpect


免费服务器和工作站

下载 Windows 和 Linux 应用程序

  • 1
    免费的pascal编译器
    免费的pascal编译器
    一个 32/64/16 位 Pascal 编译器,用于
    Win32/64/CE、Linux、Mac OS X/iOS、
    Android、FreeBSD、OS/2、Game Boy
    Advance、任天堂 NDS 和 DOS;
    语义兼容...
    下载免费的 Pascal 编译器
  • 2
    佳能 EOS 数码信息
    佳能 EOS 数码信息
    佳能没有快门计数
    包含在一个的EXIF信息中
    图像文件,而不是尼康和
    宾得。 没有基于佳能的官方
    应用 ...
    下载佳能 EOS 数码信息
  • 3
    EFInd
    EFInd
    rEFInd 是 rEFIt 引导的一个分支
    经理。 像 rEFIt 一样,rEFInd 可以
    自动检测您安装的 EFI 启动
    loaders,它提供了一个漂亮的 GUI
    启动选项菜单...
    下载 rEFInd
  • 4
    快递卢克GSI
    快递卢克GSI
    这个 SourceForge 下载页面是为了
    授权用户下载我构建的源代码
    GSI,基于 phhusson 的伟大
    工作。 我构建了 Android Pie 和
    安卓 1...
    下载 ExpressLuke GSI
  • 5
    音乐播音员
    音乐播音员
    Music Caster 是一个托盘音乐播放器
    可以让您将本地音乐投射到
    Google Cast 设备。 在第一次运行时,
    你需要点击你的箭头
    塔...
    下载音乐播音员
  • 6
    PyQt的
    PyQt的
    PyQt 是 Python 绑定
    Digia 的 Qt 跨平台
    应用程序开发框架。 它
    支持 Python v2 和 v3 以及 Qt v4 和
    Qt v5。 PyQt 可用...
    下载 PyQt
  • 更多 ”

Linux 命令

Ad