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

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

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

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

谢谢!
展开
 我来答
videlord
2013-12-29 · TA获得超过1336个赞
知道大有可为答主
回答量:1518
采纳率:66%
帮助的人:437万
展开全部
要看你怎么用吧,用作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
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式