在 shell 脚本的提示下检测并输入输入

Abh*_*CR7 1 linux bash shell sh

我正在编写一个 shell 脚本,它有很多网络调用和安装。执行时,我需要为每个提示输入是/否。这很好。

但是现在我需要将它作为 cron 运行。在这种情况下,我将无法为出现的每个提示提供输入。有什么方法可以让我自动执行此操作,或者有某种机制可以在脚本中知道出现了提示?

Ini*_*ian 5

使用yes命令回答交互式提示,

yes Y | ./script.sh
Run Code Online (Sandbox Code Playgroud)

上面的语法不断地将字符串放入Y所有提示中。您可以在 之后根据需要传递字符串yes

您也可以使用expect用于此目的的工具,但您需要知道用于捕获和相应响应的确切提示消息。如果您的提示很简单并且只需要一个简单的输入即可通过,yes这将是正确的工具。

您也可以使用bashbuilt-in printf,但您需要根据您必须响应的提示数量手动添加响应,例如

printf 'Y\nY\nY\n' | ./script.sh
Run Code Online (Sandbox Code Playgroud)

发送响应Y为三个提示。同样,为了避免手动执行此操作,最好使用yes命令。