这是一个后续问题
ksh 变量接受的最大字符数是多少?
我检查了我的环境,它只允许
#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
你可以编译一个 Linux 3.7.x 内核,并编辑它的include/uapi/linux/limits.h
文件以增加ARG_MAX
参数(2 的更大幂,例如 2097152)。但如果您想增加更多内存,您应该拥有大量 RAM(例如 8GBytes)。
实际限制与执行(2)。该手册页上有一个段落。
但您也许可以避免使用巨大的 shell 变量(在 Unix 环境中)。您是否考虑过使用其他工具(awk
, python
, perl
....) 读取您的文件?它们的变量环境不是传输到分叉程序的 shell 环境,因此它们可以具有具有很长值的变量。或许ksh
有一些内置的(unexport
) 以避免将某些变量导出到 Unix 环境中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)