是否有可能增加kshvariables接受的最大字符数?

这是一个后续问题

什么是kshvariables接受的最大字符数?

我检查了我的环境,它只允许

#include <sys/limits.h> $ cpp << HERE | tail -1 > #include <limits.h> > ARG_MAX > HERE 1048576 

有没有办法增加这个? 或者任何替代品

  while read line; do #parse logic done < $filename 

处理真的很长的路线? 根据我parsing的logging,它不会停在2M字符行。

环境细节:

  AIX $ KSH Version M-11/16/88f 

你可以编译一个Linux 3.7.x内核,并编辑它的include/uapi/linux/limits.h文件来增加ARG_MAX参数(对于两个更大的幂,例如2097152)。 但是如果你想增加更多内存,你应该有更多的内存(例如8GB)。

实际限制与execve(2)有关 。 该手册页上有一个段落。

但是你可以避免拥有巨大的shell变量(在U​​nix环境中)。 你有没有考虑使用其他工具( awkpythonperl ….)来读取你的文件? 它们的变量环境并不是传递给分叉程序的shell环境,所以它们可以具有非常长的值。 也许ksh有一些builtin( unexport )来避免将一些变量导出到Unix环境中。