我正在开发一个shell脚本,它有很多网络调用和安装。当它被执行时,我需要为每个提示输入yes / no。哪个没问题。
但现在我要求将其作为cron运行。在这种情况下,我无法为每个出现的提示提供输入。 有没有什么方法可以自动化这个或者有一些机制知道脚本中出现提示?
答案 0 :(得分:3)
使用yes
命令回答交互式提示
yes Y | ./script.sh
上面的语法不断地将字符串Y
放到所有提示中。您可以在yes
之后根据需要传递字符串。
您也可以使用expect
工具,但您需要知道准确的提示消息,以便相应地捕获和响应它。如果您的提示很简单,只需要一个简单的输入来传递yes
就可以了。
此外,您可以使用bash
内置printf
,但您需要根据您必须回复的提示数量手动添加回复,例如
printf 'Y\nY\nY\n' | ./script.sh
以三个提示发送响应Y
。同样,为避免手动执行此操作,请使用yes
命令。