我在cronjob中运行了一个脚本。但是该脚本需要一些用户输入。
如何处理这种情况?
如果从stdin接收输入,请制作另一个脚本,该脚本将通过管道或重定向来调用您的脚本。
#!/bin/sh
/foo/bar/my_command < my_input
您也可以在crontab中将其作为shell命令启动:
0 * * * * /bin/sh -c "/foo/bar/my_command < my_input"
修改脚本,因此不需要用户输入。
[通过<
从文件提供脚本所需的输入。
只要有可能,“预期的用户输入”就是密码:请勿使用选项2。将访问身份验证编辑到crontab作业中有多种危险。
PS:如mvp所建议,如果您正在考虑expect
,以上警告同样适用。从根本上讲,这等效于在便利贴上写下您的密码并将其粘贴到显示器上:简便,方便且根本不安全。
如果您只需要在脚本中进行确认(是),则crontab可能如下所示:
0 * * * * /bin/sh -c "yes | /foo/bar/my_command"