Expect 编程中的杂项知识与实用技巧
在编程过程中,总会遇到一些零散但又十分实用的知识和技巧。本文将为大家详细介绍在 Expect 编程中,关于随机数生成、库的使用、版本管理、时间处理等方面的内容,同时还会给出相关的命令和变量列表,帮助大家更好地掌握 Expect 编程。
随机数生成
在 Expect 中,有时需要生成随机数,比如在编写游戏脚本时。但 Expect 并没有内置的随机数生成命令,这是因为已经有很多解决方案,而且不同的随机数生成器(RNG)在不同目标之间进行了权衡,用户对随机数的需求也各不相同。
如果 RNG 是一个独立的程序,可以使用open或spawn来运行它。如果是非交互式且生成随机数流的程序,使用open并通过gets读取新的随机数;如果是交互式的,根据需要发送命令并使用expect获取结果。
如果想要的 RNG 是一个 C 子例程,可以编写一个命令来调用它,然后将其链接到 Expect 中。
如果对随机数质量要求不高,只是希望程序每次运行方式不同,可以使用以下 Tcl 过程:
proc random_init {seed} { global _ran set _ran $seed } proc random {} { global _ran set period 259200 set _ran [expr ($_ran*7141 +