Unix/Linux:Shell命令中参数的最大字符长度
时间:2020-01-09 10:42:05 来源:igfitidea点击:
Shell命令中参数的最大字符长度是多少?
在Linux或者Unix等操作系统下,如何找出新进程的最大参数长度?
如果由于命令行长度限制而出现错误,显示为" command:Argument list too long"。
UNIX/Linux/BSD系统对命令行参数和环境变量可以使用多少个字节有限制。
您需要使用" getconf命令"来查询名为ARG_MAX的系统配置变量。
ARG_MAX,新进程的最大参数长度
获取新进程的最大参数长度
以下命令将为Linux操作系统下的系统提供上限:
$ getconf ARG_MAX
输出示例:
2097152
因此,我可以将2097152字节的args传递给任何shell命令。
以下bash代码将为您提供确切的数字:
echo $(( $(getconf ARG_MAX) - $(env | wc -c) ))
POSIX建议另外减去2048,以便该过程可以节省修改其环境的时间:
expr `getconf ARG_MAX` - `env|wc -c` - `env|wc -l` \* 4 - 2048
输出示例:
2092496
请注意,Unix风格之间新过程的最大参数长度可能有所不同。
我建议您浏览此网页以获取详细信息。