探索 Expect:用户与进程交互及相关操作指南
1. 引言
在脚本编写中,与用户和进程进行交互是一项常见且重要的任务。同时,密码安全、终端参数设置、程序执行等方面也需要我们仔细考虑。本文将深入探讨如何使用 Expect 脚本进行这些操作,帮助你更好地处理用户与进程之间的交互。
2. 与用户和进程交互的命令
2.1 send_user 命令
在 Expect 启动时,send命令可用于将字符串打印到标准输出。但当一个进程被启动后,send命令会将字符串发送到该进程,而send_user命令则始终将字符串发送到标准输出。例如,在ftp-rfc脚本中,使用send_user命令可以在抑制ftp进程的正常输出时,向用户提供交互进度的信息。
#!/usr/local/bin/expect -- # retrieve an RFC (or the index) from uunet via anon ftp if {[llength $argv] != 1} { send "usage: ftp-rfc {-index|#}\n" exit } set timeout -1 log_user 0 send "spawning ftp\n" spawn ftp ftp.uu.net expect "Name" send_user "logging in a