ubuntu 终端中无人值守的脚本执行

ubuntu 终端中无人值守的脚本执行

我在VMWare虚拟机上安装了Ubuntu。

当我开始安装 VMWare 工具时,我偶然发现了一个简单的问题:

如果我执行一个脚本(VMWare工具中的perl脚本),有没有办法让我事先告诉执行,如果它提示我输入,鉴于它有一个默认值,它只是使用它,而不是等待让我按 Enter 键?

答案1

yes是为此目的而设计的;它连续向标准输出输出相同的字符串,因此您可以将其传输到另一个脚本中,并且它将对每个提示保持相同的答案。默认情况下,y它可以对提示说“是”,但如果您只想让它每次发送换行符,您可以将空字符串作为参数传递给它:

$ yes '' | vmware-script

答案2

要么修补源以具有默认值,要么使用此处文档或此处字符串将您的输入发送到脚本的stdin

./script << EOF
answer 1
answer 2
...
answer N
EOF

某些程序可能不接受此操作(通常是处理身份验证的程序,出于安全目的可能会禁用此操作)。在这种情况下,请考虑使用类似的东西expect

相关内容