我是厨师新手,并试图通过自动安装我们的产品来设置Ubuntu VM进行testing。 我可以下载.tgz,解压缩并使用bash资源执行安装程序。
我遇到的问题是我们的安装脚本强制EULA检查命令行安装。 它在shell脚本中与以下内容类似:
# various statements and input to expect from stdin echo "You must accept our EULA to install the software" read ENTER more EULA.txt echo "Do you accept the EULA?" # additional input expected from stdin
我可以通过使用响应文件轻松地从标准添加预期的input,并使用./install.sh < response.txt
安装,但是一旦执行一次就停止工作。 more命令没有看到来自响应文件的input,并且在接受eula之前仍然期望“q”退出命令。
厨师自动执行这种安装的正确方法是什么? 除了简单地重写install.sh脚本来忽略EULA行。
也在某处redirect输出。 如果标准输出不是terminal的话, more
只是简单地显示整个文件而不会暂停,然后退出。
例如:
./install.sh < response.txt | cat
虽然你真的应该使用像这样的场景expect
东西。