我在 cronjob 中运行了一个脚本。但是该脚本正在接受一些用户输入。
我该如何处理这种情况?
如果它从标准输入获取输入,请创建另一个脚本,该脚本将使用管道或重定向调用您的脚本。
#!/bin/sh
/foo/bar/my_command < my_input
您还可以在 crontab 中将其作为 shell 命令启动:
0 * * * * /bin/sh -c "/foo/bar/my_command < my_input"
修改脚本,使其不需要用户输入。
通过<
.
以防万一“预期的用户输入”是密码:不要使用选项 2。将访问身份验证编辑到 crontab 作业中是各种危险的。
PS:如果您正在考虑,上述警告也是正确的expect
,正如 mvp 所建议的那样。这基本上相当于在便利贴上写下您的密码并将其粘贴到您的显示器上:简单、方便且根本不安全。
如果您只需要在脚本中确认(是),则 crontab 可能如下所示:
0 * * * * /bin/sh -c "yes | /foo/bar/my_command"