我正在尝试在 FreeBSD 下的 vm-bhyve 中自动安装 Alpine Linux,并且预计在启动菜单超时并启动 Alpine Linux 安装后不久就会死机。
#!/usr/bin/env expect
spawn vm install -f alpine alpine.iso # shortened for brevity
expect "localhost login:"
send "root\r"
...
这会导致以下错误:
"while executing
"send "root\r"
我怀疑每当屏幕清除并开始启动时,会让人误以为程序已经完成?结果,脚本就死了。
我以前从未以这种方式编写期望,是否可以用期望来做到这一点?
我还尝试在生成启动并立即进入来宾控制台的 vm install cmd 之前设置全局超时,但这并没有改变任何内容,因此我将其从上面的脚本中排除。在同一个地方睡觉并没有帮助,它只是延迟了启动(以及随后的失败,我为睡眠设置的数量)。
编辑:我正在尝试在后台启动安装程序,休眠 30 秒,然后附加控制台。此时,Expect应该可以工作了。