如何为从cron运行的脚本生成自动答案

时间:2012-06-07 19:04:40

标签: shell response crontab

我想从cron运行一个shell脚本,并让它自动回答。我该怎么做?

我试图在crontab上添加一个脚本。该系统是Linux。 脚本的一个命令提示问题,必须回答(是/否) 例如: 手动执行脚本时,脚本会执行该命令。 该命令提示问题:您打算删除吗? [Y / N] 并且系统等待响应。 我回答“Y”并按ENTER,然后脚本执行删除。

我打算将此脚本放在crontab上。 我希望命令会自动回答是的。 我怎么能在crontab上做? 非常感谢 /问候

3 个答案:

答案 0 :(得分:2)

带管道的通用Cron

大多数shell都可以访问命令。您可以将它管道输入到cron作业的脚本中。

* * * * * yes | myscript.sh

Vixie Cron和标准输入

除了上述内容之外,如果您使用的是vixie-cron,还可以使用百分号将标准输入提供给命令。 crontab(5)说:

  

命令中的百分号(%),   除非使用反斜杠(\)进行转义,否则将更改为换行符   字符以及第一个%之后的所有数据都将被发送到   该命令作为标准输入。没有办法拆分   单个命令行到多行,就像shell的尾随一样   “\”。

使用vixie-cron,以下示例会将标准输入上的字母“y”传递给您的脚本:

* * * * * myscript.sh % y

答案 1 :(得分:2)

您有两种选择:

  1. 该命令可能会切换到不提示问题。例如。 rm具有切换-f(强制),因此使用rm -f $file不会提示任何内容。如果可能的话,我更喜欢这个选项。

  2. 使用yes命令,该命令完全适用于此情况。例如,如果有yes | rm fooy会自动回复rm提示。

答案 2 :(得分:0)

您可以添加

-interactive = 0

在命令末尾的

。对于任何询问yes / no的cron命令,它将自动返回yes。