bash命令可以使用多长时间?

bash命令可以使用多长时间?,bash,command-line-interface,buffer,Bash,Command Line Interface,Buffer,我记得在ksh中使用了一个旧的中端,并动态构建了运行在缓冲区中可用的2kb上的命令 我最近遇到了一个问题,一个可能的简单修复方法可能会创建包含大量长参数的很长命令。一位同事问现代bash的极限是什么,我突然想到我不知道。所有搜索似乎都偏离了历史缓冲区中的行数,但这与此无关 所以我做了一些测试,请检查我的逻辑 time echo $( printf "%01024d" $( seq 1 $max ) ) | wc -c 我做了一些简单的测试,取得了很大的成功。即使在我的笔记本电脑的git bas

我记得在ksh中使用了一个旧的中端,并动态构建了运行在缓冲区中可用的2kb上的命令

我最近遇到了一个问题,一个可能的简单修复方法可能会创建包含大量长参数的很长命令。一位同事问现代bash的极限是什么,我突然想到我不知道。所有搜索似乎都偏离了历史缓冲区中的行数,但这与此无关

所以我做了一些测试,请检查我的逻辑

time echo $( printf "%01024d" $( seq 1 $max ) ) | wc -c
我做了一些简单的测试,取得了很大的成功。即使在我的笔记本电脑的git bash仿真上,如果我用max=32运行它,我也会得到

这是一个回音,后跟32个1kb字符串作为空格分隔的参数,通过管道传输到wc-c,报告在大约四分之一秒内接收到的适当字节数。不用说我很高兴也很惊讶,所以我开始加倍努力寻找帽子。。。结果失败了。看看这个

max=40960
$: time echo $( printf "%01024d" $( seq 0 40960 ) ) | wc -c
41944065

real    0m10.985s
user    0m4.117s
sys     0m7.565s
处理时间为11秒,但这是一个41MB的命令行,已成功创建、加载、执行和解析

天哪。。。这个规格的上限是多少


和/或是因为某种原因,该测试不能很好地证明我可以构建一个几乎任意长的命令?

主要问题的简短回答是:


命令行的长度限制不是由shell施加的,而是由操作系统施加的。此限制通常在100 KB的范围内。

这似乎是合理的-为什么要否决?是的,我实际上对规范很好奇,但这仍然是相关的。这似乎是对的逐字引用,甚至不是你自己的答案。与其将别人的答案作为你自己的答案转载,你只需评论并指出该问题是重复的,并链接到现有的答案。这是我对一个我刚开始使用此网站的问题的第一个答案。如果我做错了,那就是我的错way@RakanAjlouni这是可以理解的。今后,请提供评论,说明可能重复的。。。并提供现有答案的链接。此外,不加署名地逐字抄袭别人的话通常是不受欢迎的,不仅是在StackOverflow上,而且几乎在任何地方都是如此。请看这里:。可能与此相关。几乎可以肯定是重复的,谢谢链接。相关外卖-问题不在于行长度,而在于参数的数量。在我的笔记本电脑上,getconf ARG_MAX返回32000,但我可以设置MAX=256000,/bin/echo$seq 1$MAX | wc-w给我256000,但在512000时我得到0…既然你同意这是重复的,我就继续投票,这样结束。不管怎样,很高兴你找到了你需要的答案。是的,谢谢!我很容易,哈哈
max=40960
$: time echo $( printf "%01024d" $( seq 0 40960 ) ) | wc -c
41944065

real    0m10.985s
user    0m4.117s
sys     0m7.565s