通过 Shell 和 Expect 脚本实现对 IBM 刀片服务器高级管理模块固件的大量升级
2009-12-09 00:00:00 来源:WEB开发网核心提示: 图 3. 程序流程编写 Shell 和 Expect 脚本关于 Expect 脚本现代的 Shell 对程序提供了最小限度的控制 ( 开始,停止,通过 Shell 和 Expect 脚本实现对 IBM 刀片服务器高级管理模块固件的大量升级(3),等等 ),而把交互的特性留给了用户,并可以被嵌套在
图 3. 程序流程
编写 Shell 和 Expect 脚本
关于 Expect 脚本
现代的 Shell 对程序提供了最小限度的控制 ( 开始,停止,等等 ),而把交互的特性留给了用户。这意味着有些程序,用户不能非交互的运行,比如说 passwd。Expect 恰恰填补了这个缺陷,解决了在 Unix 环境中长期存在着的一些问题。
Expect 使用 Tcl 作为语言核心。不仅如此,不管程序是交互和还是非交互的,Expect 都能运用。一个 Expect 程序员可以写一个脚本来描述程序和用户的对话。接着 Expect 程序可以非交互的运行“交互式”的程序。写交互式程序的脚本和写非交互式程序的脚本一样简单。
这样,像 telnet, su, rlogin, ftp 等应用如果没有一个用户接口交互式的提供输入,Shell 脚本根本无法自动执行下去。Expect 脚本则可以做到。
Expect 语言是基于 Tcl 的。Tcl 实际上是一个子程序库,这些子程序库可以嵌入到程序里从而提供语言服务。最终的语言有点象一个典型的 Shell 语言,并可以被嵌套在 Shell 脚本中使用。
Expect 脚本使用 spawn 命令激活一个 Unix 程序来进行交互式运行;使用 send 命令向进程发送字符串;使用 expect 命令等待进程的某些字符串;也可以像 Shell 脚本一样使用 set 命令给变量赋值;控制程序执行的 if, for, continue 等命令,还能进行普通的数学和字符串操作。
更多精彩
赞助商链接