多进程同时处理的 Expect 脚本技巧
在自动化脚本编写中,经常会遇到需要同时处理多个进程的情况。本文将深入探讨如何使用 Expect 脚本实现多进程的同时处理,以及如何简化脚本编写,提高效率。
1. 隐式与显式 Spawn ID
在之前的示例中,我们通过设置spawn_id变量来切换send和expect命令与不同进程的通信。例如:
set spawn_id $ftp send "get $filel\r"; set spawn_id $write expect "220*ftp> " send "successfully retrieved file\r" set spawn_id $ftp send "get $file2\r"; expect "220*ftp> "除了这种隐式的方式,我们还可以使用显式的参数来指定spawn id。通过-i标志,我们可以直接将spawn id作为参数传递给send和expect命令,而不依赖于spawn_id变量。例如:
send -i $write "successfully retrieved file\r"使用