前言
不确定这个问题是否在 Unix Stack 交换的范围内,因为它本质上是理论上的。我愿意将其移至不同的堆栈交换。
语境
在 Unix 命令提示符下,用户可以键入;
以按顺序执行多个命令。如果一个失败,它不会停止下一个命令的执行。
问题
用户可以在一次提示执行中链接在一起的命令数量的理论限制是多少;
?
不确定这个问题是否在 Unix Stack 交换的范围内,因为它本质上是理论上的。我愿意将其移至不同的堆栈交换。
在 Unix 命令提示符下,用户可以键入;
以按顺序执行多个命令。如果一个失败,它不会停止下一个命令的执行。
用户可以在一次提示执行中链接在一起的命令数量的理论限制是多少;
?
在 POSIX 标准中定义了 shell(假设这里)可以在单行上执行的命令数量的理论限制:
sh
这意味着 shell 应该能够在一行中接受任意数量的命令,只要每个单独的命令足够短,不超过
execve()
函数接受的长度(单个命令的长度,带参数,以及当前环境的环境变量及其值总共必须小于ARG_MAX
字节)。在实践中,这受到施加在 shell 进程上的内存资源限制的限制。