【发布时间】:2014-08-24 23:36:21
【问题描述】:
我正在执行一个 shell 脚本,在较高级别上它从 csv 读取记录并因此执行一些数据库操作。 我通过手动运行脚本进行了分析。对于文件中少于 900 条记录,它运行良好,但对于超过 900 条记录它给出了错误。下面是我一段时间后得到的错误截图:
脚本的一部分正在逐个选择记录 1:
您能否说明为什么会发生这种情况?当用户遇到该错误时,我已经阅读了类似的主题,但无法将它们与我的场景联系起来。
干杯
【问题讨论】:
-
我认为您没有发布错误所在的第 109-111 行。
-
您能否说明为什么会这样? ...因为参数列表太长。记录被传递给 shell,shell 对参数列表长度有限制。
-
尝试将
find *XYZ*.csv > list_of_files.txt替换为find . -name "*XYZ*.csv" > list_of_files.txt以避免通配符。 -
顺便说一句,很明显,批处理中使用的变量之一在某处被设置为某个荒谬的长值(> 250k len),可能是由于脚本本身的质量低。我建议将 $v_DateTime 视为罪魁祸首。
-
将
set -x放在脚本的开头。然后它会向您展示它在做什么,所有变量都已展开。