英语法语西班牙语

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
    阿伏加德罗
    阿伏加德罗
    阿伏伽德罗是一种先进的分子
    专为跨平台使用而设计的编辑器
    在计算化学,分子
    建模、生物信息学、材料
    科学和...
    下载阿伏加德罗
  • 2
    XML电视
    XML电视
    XMLTV 是一组要处理的程序
    电视 (tvguide) 列表和帮助管理
    您的电视观看,将列表存储在
    基于 XML 的格式。 有实用程序
    做...
    下载 XMLTV
  • 3
    罢工者
    罢工者
    Strikr 自由软件项目。 文物
    在“基于意图的”下发布
    双许可证:AGPLv3(社区)和
    CC-BY-NC-ND 4.0 国际
    (商业的)...
    下载 strikr
  • 5
    GIFLIB
    GIFLIB
    giflib 是一个用于阅读和
    写gif图片。 它是 API 和 ABI
    与 libungif 兼容
    LZW压缩时广泛使用
    算法是...
    下载 GIFLIB
  • 6
    Alt-F
    Alt-F
    Alt-F 提供了一个免费和开源的
    DLINK 的替代固件
    DNS-320/320L/321/323/325/327L and
    DNR-322L。 Alt-F 有 Samba 和 NFS;
    支持ext2/3/4...
    下载 Alt-F
  • 更多 ”

Linux 命令

  • 1
    2平6
    2平6
    2ping - 一个双向 ping 工具 ...
    运行2ping6
  • 2
    2比3-2.7
    2比3-2.7
    2to3-2.7 - Python2 到 Python3 转换器
    ...
    跑2to3-2.7
  • 3
    cpqarrayd
    cpqarrayd
    cpqarrayd - 数组控制器
    监控守护进程语法:cpqarrayd [-d]
    [-v] [-t 主机 [-t 主机]] 描述:
    该程序能够监控 HP
    (康柏)阿拉...
    运行 cpqarrayd
  • 4
    协议
    协议
    cproto - 生成 C 函数原型
    并转换函数定义...
    运行cproto
  • 5
    gapi2-修正
    gapi2-修正
    未记录 - 没有这方面的联机帮助页
    程序。 描述:这个程序确实
    没有联机帮助页。 运行这个命令
    用help switch看看是什么
    做。 对于...
    运行 gapi2-fixup
  • 6
    gapi2-解析器
    gapi2-解析器
    未记录 - 没有这方面的联机帮助页
    程序。 描述:这个程序确实
    没有联机帮助页。 运行这个命令
    用help switch看看是什么
    做。 对于...
    运行 gapi2-parser
  • 更多 ”

Ad