Shell最大支持定义一个多长的字符串变量?

目前系统使用Linux+Sybase做核心业务,其中涉及到对超长字符串(数万字节以上/字符串)的操作(如提取子串,插入子串……)。

Sybase虽然本身有很多便捷的字符串操作函数,但这些函数都只能操作16384字节以内的字符串,超过这个限额就报错了。因此我只能考虑把这些超长字符串的操作放到Linux上进行。

请问Linux的字符串有没有像Sybase那样的有最大长度的限制呢,即Linux能否为变量赋一个数万字节的字符串,并对这种超长字符串作常规操作呢?

谢谢!

第1个回答  2013-12-29
要看你怎么用吧,用作shell命令参数,肯定有限制啊
getconf ARG_MAX
或者
xargs --show-limits
查看你的系统的限制追问

你好,我尝试把一个14W+字节的字符串赋值给变量longstr并打印长度,然后对比第二个命令(xargs...)的限制信息,发现实际允许保存的字符串长度比系统提示的要长。请问是不是哪个地方不对呢?谢谢。

 

测试结果如图:

追答

恩,xargs那个是作为命令参数string length限制
如果单纯作为shell变量,限制是所有的环境变量加在一起,不大于1/4 allowed stack size.(如果你的kernel是2.6.23以上),你可以man execve查看Limits on size of arguments and environment这一段

你系统stack size 你可以通过ulimit -s来查看,单位是kb

本回答被提问者采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网