这是一个后续问题
What is the maximum number of characters that the ksh variable accepts?
我检查了我的环境,它只允许
#include <sys/limits.h>
$ cpp << HERE | tail -1
> #include <limits.h>
> ARG_MAX
> HERE
1048576有没有办法增加这一点?或任何可选的
while read line;
do
#parse logic
done < $filename来处理很长的队伍吗?根据我正在解析的记录,它不会在2M字符行上停止。
环境详细信息:
AIX $ KSH Version M-11/16/88f 发布于 2013-01-18 04:22:37
您可以编译一个Linux3.7.x内核,然后编辑它的include/uapi/linux/limits.h文件以增加ARG_MAX参数(2的某个更大的幂,例如2097152)。但是如果你想增加更多的内存,你应该拥有大量的内存(例如8GBytes)。
实际限制与execve(2)相关。那个手册页上有一段话。
但是您可以避免使用庞大的shell变量(在Unix环境中)。您是否考虑过使用其他工具(awk、python、perl……)来读你的档案?它们的变量环境不是传输给forked程序的shell环境,因此它们可以具有非常长的值的变量。也许ksh有一些内置的(unexport)来避免将一些变量导出到Unix环境中。
https://stackoverflow.com/questions/14387344
复制相似问题