我想从cron运行一个shell脚本,并让它自动回答。我该怎么做?
我试图在crontab上添加一个脚本。该系统是Linux。 脚本的一个命令提示问题,必须回答(是/否) 例如: 手动执行脚本时,脚本会执行该命令。 该命令提示问题:您打算删除吗? [Y / N] 并且系统等待响应。 我回答“Y”并按ENTER,然后脚本执行删除。
我打算将此脚本放在crontab上。 我希望命令会自动回答是的。 我怎么能在crontab上做? 非常感谢 /问候
答案 0 :(得分:2)
大多数shell都可以访问是命令。您可以将它管道输入到cron作业的脚本中。
* * * * * yes | myscript.sh
除了上述内容之外,如果您使用的是vixie-cron,还可以使用百分号将标准输入提供给命令。 crontab(5)说:
命令中的百分号(%), 除非使用反斜杠(\)进行转义,否则将更改为换行符 字符以及第一个%之后的所有数据都将被发送到 该命令作为标准输入。没有办法拆分 单个命令行到多行,就像shell的尾随一样 “\”。
使用vixie-cron,以下示例会将标准输入上的字母“y”传递给您的脚本:
* * * * * myscript.sh % y
答案 1 :(得分:2)
您有两种选择:
该命令可能会切换到不提示问题。例如。 rm
具有切换-f
(强制),因此使用rm -f $file
不会提示任何内容。如果可能的话,我更喜欢这个选项。
使用yes命令,该命令完全适用于此情况。例如,如果有yes | rm foo
,y
会自动回复rm
提示。
答案 2 :(得分:0)
您可以添加
在命令末尾的-interactive = 0
。对于任何询问yes / no的cron命令,它将自动返回yes。