首页 > 解决方案 > Bash:从文件交互/cron读取不同的行为

问题描述

我有一个脚本,它在处理过程中将大约 20 个数字逐行写入文件。

当脚本再次启动时,它会使用此代码从该文件中读取

declare -a sedum
i=0
while read -r line
do
    sedum[$i]=$line
    i=$(( $i + 1 ))
done < $f_sday

f_sday 包含文件名。当我从命令行调用脚本时,它总是可以正常工作并读取文件的完整内容。

但是当在 cronjob 中调用脚本时,它只读取两个或三个值

我知道从 cron 它可能不是同一个环境,但我在这里看不到任何环境依赖性。起初我尝试了 mapfile,但它只读取了二十个值中的两个。

知道我在这里缺少什么吗?

标签: arraysbashcroninteractive

解决方案


愚蠢的我。

我没有控制工作路径(cron 从 $HOME 开始),所以脚本正在处理错误的文件。感谢您的 set -x 提示。这使我走上了正确的道路!


推荐阅读