在expect的interact中能否保留匹配到的进程输出?
解决Expect脚本中进程输出自动显示的问题
首先明确:Expect的interact -o默认会拦截匹配到的进程输出,不会自动回显——没有像用户输入的-echo那样的直接选项来让它自动显示匹配内容。但可以通过内置变量简化操作,不用硬编码手动发送原内容。
修改后的脚本
#!/usr/bin/expect spawn bash interact { -o hello_world { send_user $expect_out(buffer) send "Goodbye" } }
说明
$expect_out(buffer)会自动捕获匹配到的进程输出内容,用send_user输出后,就能保留原输出的显示,同时执行后续的send操作。- 这样既不用手动写
send_user("hello_world"),也能实现原内容自动显示+替换操作的需求。
内容的提问来源于stack exchange,提问作者merlin2011
相关产品推荐
相关产品推荐

