如何在cronjob脚本中提供用户输入

时间:2013-11-08 10:11:06

标签: linux bash crontab

我在crontab中运行了一个脚本。 但该脚本正在接受一些用户输入。

我该如何处理这种情况?

4 个答案:

答案 0 :(得分:3)

如果从stdin获取输入,请创建另一个脚本,使用管道或重定向调用脚本。

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

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

0 * * * * /bin/sh -c "/foo/bar/my_command < my_input"

答案 1 :(得分:1)

  1. 修改脚本,使其不需要用户输入。

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

  3. 万一“预期的用户输入”无论如何都是密码:不要使用选项2.将访问身份验证编辑到crontab作业中会有各种危险。

    PS:如果您按照mvp的建议考虑expect,则上述警告也是如此。它基本上相当于在帖子上写下你的密码并将其粘贴到你的显示器上:简单,方便,而且根本不安全。

答案 2 :(得分:0)

您可以使用expect模拟脚本中的手动用户输入。 即使您的脚本不接受重定向(如果需要输入密码,也可以这样做)。

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

答案 3 :(得分:0)

如果您只需要在脚本中确认(是),则crontab如下所示:

{
  "render": function ( data, type, row ) {
    return formatEmptyDates(row[5]);
  },
  "targets": 5
},