Bash命令行和输入限制

前端之家收集整理的这篇文章主要介绍了Bash命令行和输入限制前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在bash(或其他shell)中,输入可以有多长时间?如果是,那是什么字符限制?

也就是说是否可以在bash中写一个太长的命令来执行命令行?
如果没有要求的限制,是否有建议的限制?

命令行的长度限制不是由shell强制的,而是由操作系统决定的。此限制通常在百千字节的范围内。 POSIX表示此限制ARG_MAX和POSIX一致的系统,你可以查询
$ getconf ARG_MAX    # Get argument limit in bytes

例如。在Cygwin这是32000,在不同的Linux发行版我使用它是从131072到2621440。

如果需要处理超过此限制的文件列表,您可能需要查看xargs实用程序,该实用程序会重复调用一个参数子集不超过ARG_MAX的程序。

要回答你的具体问题,是的,可以尝试运行一个参数列表太长的命令。 shell将会出现一个消息“参数列表太长”。

注意,对程序的输入(在stdin或任何其他文件描述符上读取)不受限制(仅由可用的程序资源)。因此,如果您的shell脚本将字符串读入变量,您不受ARG_MAX的限制。

猜你在找的Bash相关文章