参数列表太长,无法输入

时间:2014-07-03 18:07:50

标签: bash shell unix

我正在执行一个shell脚本,在高层次上它从csv读取记录并因此执行一些数据库操作。 我通过手动运行脚本进行了分析。它运行正常,文件中的记录少于900条,但它给出了超过900条记录的错误。下面是我在一段时间后得到的错误的屏幕截图:

脚本的一部分是逐个选择记录:

你能否说明为什么会这样?当用户收到该错误时,我已经阅读了类似的主题,但无法将其与我的scneario联系起来。

干杯

1 个答案:

答案 0 :(得分:2)

我之前遇到过这个问题,很容易复制:

unset a; export a=$(perl -e 'print "a"x(1024*64)'); whoami
tiago

unset a; export a=$(perl -e 'print "a"x(1024*128)'); whoami
bash: /usr/bin/whoami: Argument list too long

perl -e 'print "a"x(1024*64)' | wc  -c
65536

perl -e 'print "a"x(1024*128)' | wc  -c
131072

因此65536和131072字节之间的某些内容中断,当我遇到此问题而不是导出值时,我正在打印并使用管道来处理数据。另一种方法是使用文件。

您可以找到不错的实验:What is the maximum size of an environment variable value?