如何在cronjob脚本中提供用户input

我有一个在cronjob脚本运行。 但是该脚本正在采取一些用户input。

我该如何处理这种情况?

如果它正在从stdin输入,则创建另一个脚本,用管道或重定向来调用脚本。

#!/bin/sh /foo/bar/my_command < my_input 

您也可以在crontab中将其作为shell命令启动:

 0 * * * * /bin/sh -c "/foo/bar/my_command < my_input" 
  1. 修改脚本,使其不需要用户输入。

  2. 通过<从文件中提供脚本所需的输入。

以防万一“预期的用户输入”是一个密码: 不要使用选项2.编辑访问认证到crontab作业是各种各样的危险。

PS:上面的警告也是如此,如果你正在考虑expect ,如mvp所示。 它基本上相当于在邮件上写下密码,并将其粘贴到监视器上:简单,方便,并且不安全。

您可以使用expect来模拟脚本中的手动用户输入。 即使您的脚本不接受重定向(可能需要输入密码),这也是有效的。

在实践中,我发现Perl Expect比裸露的expect更容易编写脚本。