我正在尝试在启动脚本中自动安装 Ubuntu 18.04 VM 模板上的 CUDA。我对 bash 和云计算还很陌生。当我运行安装 CUDA 的命令时,在安装过程中,系统总是提示我通过输入相应的 ID 号从选项列表中选择一个国家/地区和一种语言。
基本上,当我跑步时:
sudo apt-get -y install cuda
我知道我必须手动输入“31”和“1”才能完成安装。作为这方面的新手,我的问题是“如何自动输入这些内容,这样我就不必每次启动此 VM 模板的新副本时都手动输入它们?”
我最初的做法是这样的:
printf "31\n1\n" | sudo apt-get -y install cuda
但这似乎并没有像我预期的那样工作。没有自动填充任何输入。
我的最终目标是通过一个启动脚本来处理所有我不需要触碰的事情。
我非常感谢大家的帮助,如果我的问题已经在其他地方得到解答,我深感抱歉(如果已经得到解答,但我找不到它,如果能指引我找到它,我将不胜感激!)
答案1
安装expect
并编写一个可以回答提示的期望脚本。它看起来像这样(警告 - 未经过任何测试):
#!/usr/bin/expect
spawn sudo apt-get -y install cuda
expect "first prompt:"
send "31\r"
expect "second prompt:"
send "1\r"
wait
其中您需要用适当的实际提示来代替“第一个提示:”和“第二个提示:”。
请在此处查看有关以下方面的更多信息expect
:
https://www.slashroot.in/expect-command-tutorial-linux-example-usage
http://tcl.tk/man/expect5.31/expect.1.html
您可能还对此感兴趣autoexpect
,它可以通过观察您的交互式会话自动生成脚本: