While/Read/Do/Done 循环在文本文件中切出一半

While/Read/Do/Done 循环在文本文件中切出一半

我有一个 bash 脚本,在其中运行一个while/read/do/done循环,该循环由一个包含 200 多个值的文本文件提供。我在我的 cron 上设置了这个 bash 脚本,每天早上运行 3 次。我遇到一个问题,即 while read 循环未完成逐行读取文本文件。我已在下面包含所有相关代码。我目前使用的是 Ubuntu 16.04 LTS 桌面。

可能是什么原因造成的?

Bash 脚本代码:

while read point; do

  echo "${point}"

done < /home/admin/site_list

site_list 文件(示例):

KBOS
KLWM
KOWD
KPYM

定时任务:

07 6 * * * time /home/admin/all.sh > /home/admin/logs/all1.log1 2>&1
08 10 * * * time /home/admin/all.sh > /home/admin/logs/all1.log2 2>&1 
14 13 * * * time /home/admin/all.sh > /home/admin/logs/all1.log3 2>&1 

答案1

您可能应该将 stderr 重定向time /home/admin/all.sh到日志文件或其他文件中。我的猜测是您错过了错误消息。crond通常将任何 stdout 或 stderr 输出通过电子邮件发送给 cron 作业的所有者。我无法从您的信息中看出用户 ID 是什么:可能是 root。检查该机器上的电子邮件是否有来自的电子邮件,crond看看内容是什么。

相关内容